jQuery-UI draggable is very good for creating draggable components. It was perfect for the creating jMatrixBrowse. jMatrixBrowse is a jQuery plugin that allows creating large browsable matrices (like Google Maps) in the browser
Draggable uses the generatePosition method to generate the new position for the draggable. To check custom bounds, I extended the generatePosition method and implemented by custom bounds checks in this.