拖放区中可拖动的 Jqueryui 不会滚动,会恢复,滚动条存在

Jqueryui draggable in dropzone will not scroll, reverts back, scroll bars are present

本文关键字:滚动 滚动条 存在 恢复 拖动 Jqueryui 拖放区      更新时间:2023-09-26

在我的主页上,我有 2 个div,都在固定位置。第一个div 是"拖放区",第二个div 包含多个可拖动的div。

在我的小提琴中,我故意省略了代码以使其更简洁,但删除的代码不会影响我的问题

我可以毫无问题地拖动所有可拖动对象,并确认拖放到拖放区时的预期行为。这可以从小提琴中看到。我还能够将其拖放到拖放区div 可见区域内的任何位置。

我希望能够再次捡起它并将其移动到最右侧或低处的放置区中的任何位置,因此您需要滚动。 正在发生的事情是滚动条确实会接合,但一旦拖动,它就会弹回。不过,我可以将其拖到可见区域的任何位置。

我的其他代码(省略)需要恢复并启用帮助程序克隆,这就是在这里使用它的原因。 其他代码 100% 如果我尝试为其他问题提供的一些解决方案,情况会变得更糟或停止一起工作,无论是在这个例子中,还是在我的其他使用帮助程序克隆/还原的代码中

''i 怎么能做到这一点???小提琴:http://jsfiddle.net/zVZ6X/22/.css

body{margin:0; padding:0; background-color:grey;}
.sandbox { position:relative; 
           overflow:scroll; 
           width:600px; 
           height:250px;
           background-color:#F7DF7C; 
           border:none; padding:0; }
.tilecontainer{ position:fixed; 
            bottom:10px; 
            height:150px; 
            width:400px; 
            background-color:#C7DE7C; }
.thumbsize{ height:100px; 
            width:100px; 
            float:left; 
            border:0;
            overflow:hidden;}
.absolute{ position:absolute; }

.html

<div id='sandbox' class='sandbox'></div>
<div id='tilecontainer' class='tilecontainer'>
<div id='thumb1' class='thumbsize' style='background-color:red;'></div>   
<div id='thumb2' class='thumbsize' style='background-color:blue;'></div>   
<div id='thumb3' class='thumbsize' style='background-color:orange;'></div>   
</div>

.js

$(function() {
$( ".thumbsize" ).draggable({
        helper:"clone", 
        revert: "invalid",
        grid: [ 100, 100 ],
        zIndex: 100,
        opacity: 0.55,
        stack: ".thumbsize",
        containment: "sandbox",
        scroll: true
 });
$("#sandbox").droppable({
    drop: function(event, ui) {
        $(ui.draggable).appendTo(this).addClass('absolute').css({
            top: ui.offset.top,
            left: ui.offset.left,
        });
    }
});

});

我的其他代码(省略)需要恢复并启用帮助程序克隆,这就是在这里使用它的原因。 另一个代码 100% 工作

添加

$(ui.draggable).draggable({ revert: false });$(ui.draggable).draggable({ helper: "original"});

成功了!

我想将克隆助手与还原结合使用是罪魁祸首。 如果单独删除了这些属性中的任何一个,则问题仍然存在。两者都需要删除才能正常工作,但是如果我删除它们,我将失去其他代码所需的还原功能。

answser将在删除时删除有问题的属性,或删除还原和克隆帮助程序。