7

Итак, у меня есть фиксированный divpable div в правом нижнем углу экрана. У меня есть список перетаскиваемых объектов, которые можно перетащить в корзину (фиксированный droppable), но я не хочу, чтобы горизонтальная полоса прокрутки появлялась при перетаскивании их рядом с корзиной. Я не хочу, чтобы перетаскиваемые объекты могли прокручиваться по горизонтали. На странице еще есть другие droppables, которые можно отбросить, чтобы они могли прокручиваться по вертикали, чтобы добраться до них.Jquery-ui draggable scroll vertical only

Проблема jsfiddle.

Благодаря

ответ

9

Вы можете использовать containment вариант (doc) на перемещаемых элементах. Таким образом, вы можете ограничить их движение в элемент BODY:

$('.draggable').draggable({ 
    ... 
    containment: 'body', 
    ... 
}); 

DEMO

+0

Но я не могу перетащить его вниз. –

+0

Уверен, что вы можете (или я не получаю именно эту проблему). Тело по-прежнему будет прокручивать свой видовой экран, но не будет расширяться, если курсор слишком далеко внизу или справа. –

+0

Проблема в том, что тело не проходит до самого конца. –

28

Для того, чтобы только вертикальное волочение, необходимо установить свойство «ось» перетаскиваемых таким образом:

$("selector").draggable({ 
    axis: "y" 
}); 

И если у вас уже есть инициализированному перемещаемого объект, вы должны установить это следующим образом:

$("selector").draggable("option", "axis", "y"); 
+0

Это не то, что я имел в виду. Я только хотел, чтобы он «прокручивал» по вертикали и мог двигаться горизонтально. На этот вопрос уже был дан ответ, но спасибо за ответ. –

+3

это было то, что я искал – prototype

+0

Я тоже искал это. благодаря – softnayr