jquery ui draggable - how can I prevent dragging outside the top of my document?

draggable, jquery-ui

Solution

You could overwrite the position of the element being dragged.

This fiddle is an example of the position overwriting : http://jsbin.com/ufarif/7/edit

Here is an example to not permit to be more close than 80 px of the left border

$('[id^="drag-"]').each(function() {
    $(this).draggable({
        opacity: 0.7,
        cursorAt: { top: 15, left: 50 },        
        scroll: true,
        stop: function(){},  
        drag : function(e,ui){            
            //Do not permit to be more close than 80 px of the left border
            console.log(ui.position.left);      
            if(ui.position.left < 80)    
                ui.position.left = 80;
        });
});

Problem

I've set up a jquery draggable, which can be moved around the entire document, it's not contained by anything, and this is acceptable, as when the user drags, I want them to be able to drag as far down the page (or left or right) as they wish. Indeed, the only restriction I want - is that they should be prevented dragging the element outside of the top of the page. Is it possible to prevent dragging outside only one edge of a container?

Original source