jQuery Draggable包含可见窗口?

时间:2012-02-19 17:43:27

标签: jquery draggable containment

我正在尝试包含我的可拖动元素,因此无法将其拖动到可查看窗口之外,如果用户位于页面顶部,则效果很好,但是如果向下滚动则会将其全部混乱

我该怎么做?

$(".chat-wrapper > li.draggable").draggable({ 
 greedy: true, 
 handle: '.chat-button', 
 containment: 'html'
 });

3 个答案:

答案 0 :(得分:6)

只需使用containment: 'window'和可能的scroll: false

示例:

$('#selector').draggable({
    containment: 'window',
    scroll: false
});

更多信息:

containmentscroll

答案 1 :(得分:2)

$(".chat-wrapper > li.draggable")
.on('mousemove',function(){ // Update containment each time it's dragged
    $(this).draggable({
        greedy: true, 
        handle: '.chat-button',

        containment: // Set containment to current viewport
        [$(document).scrollLeft(),
        $(document).scrollTop(),
        $(document).scrollLeft()+$(window).width()-$(this).outerWidth(),
        $(document).scrollTop()+$(window).height()-$(this).outerHeight()]
    });
})
.draggable({ scroll: false });

答案 2 :(得分:0)

尝试删除greedy:true

我试图完成同样的事情并将其移除