Ale*_*bbe 22 jquery jquery-ui jquery-ui-sortable
我的页面底部有一个可排序的无序列表,在Firefox中非常适用.但是,在Safari/Chrome中,当我想拖动时,抓取的listitem会立即跳到页面顶部,就像UL在窗口顶部一样.有谁知道这里发生了什么?
谢谢.莱克斯.
这是代码:
HTML(和PHP):
<ul id="list">
<?
foreach($downloads as $download)
{
echo "<li class='downloads'><a rel='".$download->id."' href='".$base_url."downloads/".$download->id."'>".$download->title."</a></li>";
}
?>
</ul>
Run Code Online (Sandbox Code Playgroud)
CSS:
ul#list {
padding: 10px 0;
display: block;
}
ul#list li {
background: #fff;
padding: 10px;
color: #bc1e2c;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
font-weight: bold;
margin: 10px 0;
display: block;
}
ul#list li:hover {
background: #212121;
color: #fff;
cursor: move;
}
Run Code Online (Sandbox Code Playgroud)
JS:
$(".alter-content ul#list").sortable({
update : saveSortorder,
containment: 'parent'
});
Run Code Online (Sandbox Code Playgroud)
Wal*_*erk 37
我有同样的问题.它在Firefox中运行良好,但在Safari和Chrome中不断跳跃.我最后通过添加overflow: auto;到CSS中的未排序列表来修复它.
我甚至不必指定UL的高度.
Aty*_*tyz 32
对我来说,问题来自于身体上的CSS溢出:
body { overflow-x: hidden; }
Run Code Online (Sandbox Code Playgroud)
删除此行完全解决了问题.
这是我在网上找到的修复程序...甚至可能是在 SO 上。对我有用。
elements.itemList.sortable({
'start': function (event, ui) {
//jQuery Ui-Sortable Overlay Offset Fix
if ($.browser.webkit) {
wscrolltop = $(window).scrollTop();
}
},
'sort': function (event, ui) {
//jQuery Ui-Sortable Overlay Offset Fix
if ($.browser.webkit) {
ui.helper.css({ 'top': ui.position.top + wscrolltop + 'px' });
}
}
});
Run Code Online (Sandbox Code Playgroud)