大佬教程收集整理的这篇文章主要介绍了Jquery UI可拖动不滚动可排序容器,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
sortable由两个div包装,最外面的div有overflow-y:scroll.拖放机制工作正常,直到可排序列表扩展和滚动.
当我尝试拖动并直接在可排序项上放置一个项目时,我无法使用可排序的滚动条以我想要的方式自动滚动(比如想要在第一个元素上方放下或者向下移动到下方最后一个元素).但是当我尝试在它们之间拖动和排序项目时,滚动条会在拖动时自动滚动.
这是完整的代码:
<body> <ul id="draggable" class="connectedSortable"> <li class="ui-state-default big">Item 1</li> <li class="ui-state-default big">Item 2</li> <li class="ui-state-default big">Item 3</li> <li class="ui-state-default big">Item 4</li> <li class="ui-state-default big">Item 5</li> <li class="ui-state-default big">Item 6</li> </ul> <div id="outerDiv"> <div id="innerDiv"> <ul id="sortable" class="connectedSortable"> </ul> </div> </div> </body>
// CSS
#sortable,#draggable { list-style-type: none; margin: 0; padding: 0 0 2.5em; margin-right: 10px; } #sortable li,#draggable li { margin: 0 5px 5px 5px; padding: 5px; font-size: 1.2em; width: 120px; } .marker{ BACkground: none repeat scroll 0 0 #DDDDDD; border-bottom: 1px solid #bbbbBB; border-top: 1px solid #bbbbBB; display: block; height: 20px; width: 100%; text-align: center; vertical-align: middle; color: #666; font-size: 18px; font-style: italic; } #outerDiv{ BACkground: none repeat scroll 0 0 #EEEEEE; height: 100%; right: 0; position: absolute; overflow-y: scroll; top: 0; width: 300px; } #innerDiv{ border: 1px solid #CCCCCc; min-height: 400px; position:absolute; } #sortable{ width: 200px; padding: 10px; border : 1px solid black; min-height: 230px; } #draggable{ position:absolute; top:0; left:0; } .big{ height: 80px; }
// JS
$(function() { $( "#sortable" ).sortable({ placeholder: "marker",axis: "y",}); $("#draggable li").draggable({ Helper: "clone",cursor: "move",revert: "invalid",revertDuration: 500,connectToSortable: "#sortable" }); });
小提琴http://jsfiddle.net/8KDJK/21/上的演示
任何帮助将不胜感激.谢谢 :)
几个月前我花了很多时间找到解决方法,这是我的解决方案:http://jsfiddle.net/8KDJK/23/
它现在正在工作几个月没有问题.
我们的想法是在辅助器构造回调期间将元素clone附加到可滚动容器,然后在1ms后使用setTimeout函数将帮助器附加到body,以便能够在Web页面周围拖动.
$("#draggable li").draggable({ cursor: "move",connectToSortable: "#sortable",//Here is the workaround //********************** containment: 'body',Helper: function(){ //Hack to append the element to the body (visible above others divs),//but still bellonging to the scrollable container $('#sortable').append('<div id="clone" class="ui-state-default big">' + $(this).html() + '</div>'); $("#clone").hide(); setTimeout(function(){ $('#clone').appendTo('body'); $("#clone").show(); },1); return $("#clone"); } });
链接到我之前的问题:JqueryUI,drag elements into cells of a scrolling dropable div containing large table
以上是大佬教程为你收集整理的Jquery UI可拖动不滚动可排序容器全部内容,希望文章能够帮你解决Jquery UI可拖动不滚动可排序容器所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。