【问题标题】:jQueryUI - auto scroll goes double distance when draggingjQueryUI - 拖动时自动滚动双倍距离
【发布时间】:2011-06-04 03:32:28
【问题描述】:

我已将问题提炼成显示问题的最短页面(对内联样式表示歉意)。

如果您向下滚动并拖动“拖动我”标题,请查看拖动的元素如何远离光标。它似乎移动了两倍的距离(相对于文档)。

我已经在 IE8、FF3.5 和 Chrome 中重现了这个问题。在 WinXP 和 Ubuntu 上。

我是在代码中做了一些愚蠢的事情,还是遇到了错误?

谢谢,

克里斯。

<!DOCTYPE html>
<html>
<head>
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.7/jquery-ui.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function() {
            $(".draggable").draggable();
        });    
    </script>
</head>
<body>
<div style="width: 100px; height: 800px; background: green;">
</div>
<h1 class="draggable">drag me</h1>
<div style="width: 100px; height: 800px; background: green;">
</div>
</body>
</html>

【问题讨论】:

    标签: jquery jquery-ui drag-and-drop


    【解决方案1】:

    对我来说,你发现了一个错误 :)
    它工作正常,直到鼠标光标停留在可见区域内......然后 H1 启用超光驱:D
    为了减少(但不是完全避免)错误的影响,您可以将可拖动区域限制为 e 标签(例如正文)并禁用滚动:

    $(".draggable").draggable(); $(".draggable" ).draggable( "option", "containment", 'body' ); $(".draggable" ).draggable( "option", "scroll" , false );

    或任意区域(文档中的其他选项):

    var area=Array(0,740,300,880); $(".draggable").draggable(); $(".draggable" ).draggable( "option", "containment", area ); $(".draggable" ).draggable( "option", "scroll" , false );

    【讨论】:

    • 是的,我在滚动之前观察到了完全相同的行为。不幸的是,我需要滚动效果,因为并非所有放置目标都适合可见区域。
    • 感谢您确认我的怀疑 - 我现在已将其作为错误提交。 bugs.jqueryui.com/ticket/6817jsbin.com/uvodi3
    • 如果我将助手设置为克隆或提供我自己的助手作为函数,它对我有用。
    猜你喜欢
    • 2016-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    相关资源
    最近更新 更多