jQuery可拖动可滚动容器
jQuery draggable scrollable container
我现在有一个简单的可拖动列表,我想把它放在div(项目)里面,并且是可滚动的。
$( ".draggable" ).draggable();
我现在有这个小提琴:http://jsfiddle.net/YvJhE/660/
但是正如你所看到的,可拖拽元素留在元素容器内,我希望它们能够拖出,同时也能够在元素容器内滚动,只要有更多的元素,超过容器长度
谁能告诉我正确的方向?jQuery处理与helper对象的交互,您可以将该对象附加到另一个DOM元素:
$( ".draggable" ).draggable({
helper: 'clone',
appendTo: '#outer'
});
那么你可以有一个可丢弃的地方:
$('#dropspace').droppable({
accept: '.draggable',
drop: function( event, ui ) {
window.alert('Element dropped at left: ' + ui.position.left + '; top: ' + ui.position.top);
}
});
概念证明:http://jsfiddle.net/YvJhE/662/
您仍然需要将实际的dom元素移动到它被放置的位置,或者根据您要使用它的目的重新创建它。
选项helper: 'clone'
自动克隆你正在拖动的项目,以便它可以被拖出容器:
jQuery(".draggable").draggable({
helper: 'clone',
revert: 'invalid',
appendTo: 'body'
});
实际上这是一个很好的问题,因为它揭示了JQuery如何处理可拖动元素。您的可拖拽元素不能拖到父"elements"div之外,因为它本身代表了对它们的限制。
所以你可以放弃使用父元素"elements",然后你可以把它们拖到任何你想要的地方。
或者你可以让父元素更大,使用100%的宽度和高度。
如果你在bootstrap容器中使用Draggable,你会注意到它们可以被拖动到容器的边界,但永远不会被拖出容器。
您也可以尝试将可拖动元素放置在父元素之外,并使用绝对位置。
CSS:.draggable{
width: 60px;
z-index: 15;
margin: 0 auto;
position: absolute;
}
#elements{
overflow: scroll;
position:absolute;
left:20px;
width:100%;
height:100%;
background:#fff;
border:1px solid #000;
z-index:5;
padding:10px;
font-size: 10px;
}
Html: <div id="elements"/>
<div id="" class="draggable ui-widget-content">
<p>Drag me around</p>
</div>
相关文章:
- jQuery UI可排序-多连接列表拖动
- JQuery UI可拖动潜水与滚动棒到鼠标
- jQuery UI-当可丢弃时,必须删除拖动的元素
- jQuery UI可拖动:自定义捕捉方法
- 是否可以在jquery中使用拖动滑块在4个图像之间滑动
- Bootstrap和JQuery可拖动
- jQuery拖动到相对位置的可排序列表中时出现可拖动辅助对象位置问题
- JQuery UI可拖动:如果助手设置为克隆,为什么不't可拖动集的已应用类到克隆
- jQuery可拖动克隆-safari问题
- 允许具有相同 id 的对象可以使用 jQuery 拖动
- 使一组对象与 jQuery 一起拖动
- 修改(可拖动|jQuery UI)
- “居中拖动Jquery”对话框
- keep:将鼠标悬停在拖动jquery元素上
- 拖动jQuery中已删除元素的克隆
- 不带id的可拖动jQuery的保存位置
- 移除<从一个可拖动的时候被拖动- jquery
- 面板无法拖动- Jquery UI
- 禁用在“猫头鹰轮播”中的特定元素(项目)中拖动 - jquery
- 防止在拖动 jquery UI 滑块时出现鼠标输入/鼠标离开事件