Jquery-UI перетаскиваемая прокрутка только по вертикали - PullRequest
9 голосов
/ 07 февраля 2012

Итак, в правом нижнем углу экрана у меня есть фиксированный сбрасываемый div. У меня есть список перетаскиваемых объектов, которые можно перетаскивать в корзину (фиксированная возможность сброса), но я не хочу, чтобы при перетаскивании их рядом с корзиной появлялась горизонтальная полоса прокрутки. Я не хочу, чтобы перетаскиваемые объекты могли прокручивать по горизонтали. Ниже на странице есть другие элементы, которые можно сбрасывать, поэтому их нужно прокручивать вертикально, чтобы добраться до них.

Вот jsfiddle проблемы.

Спасибо

Ответы [ 2 ]

28 голосов
/ 30 марта 2012

Чтобы разрешить только вертикальное перетаскивание, необходимо установить свойство оси для перетаскиваемого объекта следующим образом:

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

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

$( "selector" ).draggable( "option", "axis", "y" );
10 голосов
/ 07 февраля 2012

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

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

DEMO

...