jQuery可拖动和溢出问题

Phi*_*ffy 74 drag-and-drop jquery-ui

当我从设置为溢出的容器div中拖动div时,我有一个不受欢迎的效果:滚动.

我找到了其他人遇到问题的例子,但我一直无法找到解决方案

粘贴仓的示例

会发生什么是滚动只是增加,我可以看到为什么这将是所需的行为,如果你想拖动到可滚动div内的目的地,但我希望能够把它带到滚动抓取之外.

小智 99

我有一个类似的问题,在两个overflow-auto div之间进行拖动.在前面的答案的帮助下,我发现这个组合对我有用(Safari 5.0.3,jquery-1.4.4,jquery-ui-1.8.7):

appendTo: 'body',
containment: 'window',
scroll: false,
helper: 'clone'
Run Code Online (Sandbox Code Playgroud)

  • 对我来说,即使只是帮手:'克隆'独自解决了这个问题 (12认同)
  • Booya,我拖着. (5认同)

Cha*_*ant 56

appendTo

Element,SelectorDefault:'parent'

传递给appendTo选项或由appendTo选项选择的元素将在拖动过程中用作可拖动助手的容器.默认情况下,帮助程序将附加到与draggable相同的容器中.

代码示例使用指定的appendTo选项初始化一个draggable.

$('.selector').draggable({ appendTo: 'body' });
Run Code Online (Sandbox Code Playgroud)

  • +1这实际上对我有用. (4认同)
  • 是的,我在这个问题上完全失败了.我玩了一个小时.我能得到的最好的是我如何离开它,draggable不适用于溢出:( (3认同)

Phi*_*ffy 34

注意文档肯定是值得的

http://docs.jquery.com/UI/Draggable#option-scroll

滚动

类型: Boolean
默认值: true
如果设置为true,则容器在拖动时自动滚动.

所有进入这里的人,从我的错误中学习,转发(F)M !!!

  • 确实浪费了2个小时.我们应该真的是RTFM (4认同)

小智 19

它工作的克隆解决方案,但有两个问题.

第一:克隆被附加到身体上.根据你的css,你的元素可以改变样式,因为在它开始之前,它在另一个元素内部,在拖动过程中,它将直接在body元素上.

第二:有时元素必须移动,克隆让对象存在.

因此,解决这个问题的方法是:

$('.selector').draggable({
    helper: 'clone',
    start: function(){
        $(this).hide();             
    },
    stop: function(){
        $(this).show()
    }
});
Run Code Online (Sandbox Code Playgroud)