ドラッグ可能なアイテム(#draggable li)がいくつかあり、それらをsortable(#sortable)にドラッグアンドドロップしています。
ソート可能ファイルは2つの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/
どんな助けでも大歓迎です。ありがとう :)