jQuery Draggable сдерживание видимое окно? - PullRequest
4 голосов
/ 19 февраля 2012

Я пытаюсь сдержать свой перетаскиваемый элемент, чтобы его нельзя было перетаскивать за пределы видимого окна, что хорошо работает, если пользователь находится вверху страницы, однако, если вы прокрутите страницу вниз вообще, он все испортит.

Как я могу это сделать?

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

Ответы [ 3 ]

6 голосов
/ 06 января 2016

Просто используйте containment: 'window' и возможно scroll: false

Пример:

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

Дополнительная информация:

сдерживание , прокручивать

2 голосов
/ 18 августа 2012
$(".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 });
0 голосов
/ 12 ноября 2017

попробуйте удалить greedy:true

Я пытался добиться того же самого, и удаление это сработало

...