jquery可拖动的自动滚动在打开时消失

jquery可拖动的自动滚动在打开时消失,jquery,jquery-ui,Jquery,Jquery Ui,我有一个jquery可滚动文件,它不局限于它的父级。当我拖动它时,它会迫使身体自动滚动超过它的宽度,它“看起来”就像是在工作 但是,当我在这一点之后单击我的元素时,它会得到一个“奇怪”的位置,并且似乎消失了(这与位置被设置为负值有关) 我注意到,就连jquery示例也使用了一个非常高(和窄)的div来帮助实现这一点。然而,他们的例子似乎在水平方向上也能起作用 以下是我所指内容的链接: 相关源代码: <html> <head> <script type="te

我有一个jquery可滚动文件,它不局限于它的父级。当我拖动它时,它会迫使身体自动滚动超过它的宽度,它“看起来”就像是在工作

但是,当我在这一点之后单击我的元素时,它会得到一个“奇怪”的位置,并且似乎消失了(这与位置被设置为负值有关)

我注意到,就连jquery示例也使用了一个非常高(和窄)的div来帮助实现这一点。然而,他们的例子似乎在水平方向上也能起作用

以下是我所指内容的链接:

相关源代码:

<html>
<head>
    <script type="text/javascript">
       $(function () {
          $(".blueguy").draggable();
          $(".greenguy").draggable({ scroll: false, containment: 'parent' });
       });
    </script>

    <style type="text/css">
      .blueguy {
         background-color: #0000ff;
      }
      .greenguy {
         background-color: #00ff00;
      }
    </style>

</head>
<body style="height:100%;">
<div  style="height:100%;">
<div class="blueguy" style="width:300px; height:150px;">Drag me "off screen" such that the browser window auto scrolls.  Then click on me and I dissapear</div>
<div class="greenguy" style="width:300px; height:150px;">I am constrained to the be contained within my parent</div>


</div>
</body>
</html>

$(函数(){
$(“.blueguy”).draggable();
$(“.greenguy”).draggable({scroll:false,containment:'parent'});
});
蓝佬先生{
背景色:#0000ff;
}
格林盖伊先生{
背景色:#00ff00;
}
将我拖离屏幕,使浏览器窗口自动滚动。然后点击我,我就消失了
我被限制在我的父母之内
真正的问题是:为什么会发生这种情况?我知道我可以用大的额外div来解决这个问题,但我只是好奇为什么我会看到这个


此外,如果知道是否还有其他好的解决办法,那将是一件有趣的事情。

我可以重现这种行为。但它不是在单击时发生的,它是在您将元素拖离屏幕并在之后尝试将其拖回时发生的。 如果您先滚动到末尾,效果会更明显,因此,如果您将元素从屏幕向右拖动,则首先将滚动条向右放置,然后尝试将该项目拖回左侧

但你真正的问题是什么

我觉得它有点像马车。在jQueryUI中,屏幕外的滚动看起来有点混乱

有趣的是。。我试图重现这样的行为:我将两个div都包装在一个容器中,“向后滚动”速度非常快,但项目从未从鼠标下跳出,因此没有任何东西“消失”,请参见此处。
这对您来说是一种修复吗?

这是一张该bug的罚单:

坏消息是,这张罚单已经存在两年了,没有开发者的反馈

我已经找到了一个解决方法来避免这个bug,它将
position:absolute
添加到draggable元素中

您可以在这里找到一个示例:

尝试使用此

$(".selector").draggable({ helper: "clone" });

看看你的例子,看起来你的CSS真的是不同之处。(注意,我上面的示例也有一个包装容器)。谢谢你的帮助!