从滚动屏幕停止jQuery可拖动

时间:2015-07-08 02:19:28

标签: javascript jquery css jquery-ui jquery-ui-draggable

当在div元素上使用可拖动的jQuery UI时,您可以将元素“拖离”页面的右侧,但页面将只是扩展并使用该元素进行自动滚动。这是有问题的,因为我试图在元素到达窗口的右侧时启动事件。一个警告是,我不能简单地绑定div,以便它不能离开,因为我希望拖动停止光标遇到边缘而不是div(尝试从左侧拖动它看看我的意思,我只是想要在右边复制那个。)

我尝试了什么:

body {overflow:hidden;} - 乍一看有效,但是如果你仔细检查,那么实际上滚动的实际上并没有使用可见的滚动条。此外,这将用于插件,所以我不能限制用户只溢出:隐藏的身体。

创建窗口大小/固定位置的包装div 以触发事件,但是主体仍然在固定div的下方延伸。

我只是需要一种方法来说明我是否拖动了一个元素,不要滚动窗口。

这是一个允许拖动但离开窗口的jsFiddle: http://jsfiddle.net/9dx1cxu8/

html:
<div class="box"></div>

javascript (jQueryUi):
$('.box').draggable();

css:
.box{
  left:200px;
  top:200px;
  width: 150px;
  height: 150px;
  box-shadow: inset 0 0 20px
}

1 个答案:

答案 0 :(得分:22)

请使用此代码:

$( ".box" ).draggable({ containment: "#containment-wrapper", scroll: false })

DEMO