jQuery-ui 可拖动滚动仅垂直

Posted

技术标签:

【中文标题】jQuery-ui 可拖动滚动仅垂直【英文标题】:Jquery-ui draggable scroll vertical only 【发布时间】:2012-02-28 23:59:04 【问题描述】:

所以我在屏幕右下角有一个固定的可放置 div。我有一个可以拖入垃圾箱(固定可放置)的可拖动列表,但我不希望在将它们拖到垃圾箱附近时出现水平滚动条。我不希望可拖动对象能够水平滚动。页面下方还有其他可拖放的可拖放对象,因此它们必须垂直滚动才能找到。

这是问题的jsfiddle。

谢谢

【问题讨论】:

【参考方案1】:

为了只允许垂直拖动,您必须这样设置可拖动的“轴”属性:

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

如果你已经有一个初始化的可拖动对象,你必须这样设置:

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

【讨论】:

这不是我的意思。我只希望它垂直“滚动”并且可以水平移动。这个问题已经回答了,不过还是谢谢你的回答。 这正是我要找的东西 我也一直在找这个。谢谢【参考方案2】:

您可以在可拖动元素上使用containment 选项 (doc)。这样您就可以将它们的运动限制在 BODY 元素中:

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

DEMO

【讨论】:

但是我不能把它拖到droppables中。 当然可以(或者我不明白问题所在)。主体仍会滚动其视口,但如果光标移到底部或右侧太远,则不会延伸。 现在的问题是身体没有一直到底部。 看起来@Didier Ghys 解决方案工作正常,刚刚在你的小提琴中测试过。 @xCRKx TyPHoN 我确实对其进行了测试,但它阻止我将可拖动对象拉到可放置对象中。

以上是关于jQuery-ui 可拖动滚动仅垂直的主要内容,如果未能解决你的问题,请参考以下文章

动态创建jquery-ui可拖动句柄

JQuery-UI 可拖动项变为不可拖动

jQuery-UI 可拖动和可放置项目变为不可拖动

错误 jquery-ui 可拖动无法读取属性“msie”

错误 jquery-ui 可拖动无法读取属性“msie”

jQuery-UI 可拖动和可排序