当我从设置为溢出的容器div中拖动div时,我有一个不受欢迎的效果:滚动.
我找到了其他人遇到问题的例子,但我一直无法找到解决方案
粘贴仓的示例
会发生什么是滚动只是增加,我可以看到为什么这将是所需的行为,如果你想拖动到可滚动div内的目的地,但我希望能够把它带到滚动抓取之外.
我有一个类似的问题,在两个overflow-auto div之间进行拖动.在前面的答案的帮助下,我发现这个组合对我有用(Safari 5.0.3,jquery-1.4.4,jquery-ui-1.8.7):
appendTo: 'body', containment: 'window', scroll: false, helper: 'clone'
appendTo
Element,SelectorDefault:'parent'
传递给appendTo选项或由appendTo选项选择的元素将在拖动过程中用作可拖动助手的容器.默认情况下,帮助程序将附加到与draggable相同的容器中.
代码示例使用指定的appendTo选项初始化一个draggable.
$('.selector').draggable({ appendTo: 'body' });
注意文档肯定是值得的
http://docs.jquery.com/UI/Draggable#option-scroll
滚动
类型: Boolean
默认值:true
如果设置为true
,则容器在拖动时自动滚动.
所有进入这里的人,从我的错误中学习,转发(F)M !!!
它工作的克隆解决方案,但有两个问题.
第一:克隆被附加到身体上.根据你的css,你的元素可以改变样式,因为在它开始之前,它在另一个元素内部,在拖动过程中,它将直接在body元素上.
第二:有时元素必须移动,克隆让对象存在.
因此,解决这个问题的方法是:
$('.selector').draggable({ helper: 'clone', start: function(){ $(this).hide(); }, stop: function(){ $(this).show() } });