6
在dragula中,你有一種潛在的從一個容器複製到另一個容器的方式 - 我想將它用於一個UI,在這裏你將代表一個元素的符號拖拽到一個容器中並讓它產生「真正的交易「 - 真正的交易是一個任意不同的元素。Dragula拖拽一個不同於拖曳的元素
絕大部分原因是很容易:
dragula([].slice.call(document.querySelectorAll('.container')), {
copy: function (el, source) {
return source === document.getElementById('c1')
},
accepts: function (el, target) {
return target !== document.getElementById('c1')
},
removeOnSpill: true
}).on('drop', function (el) {
var newNode = document.createElement("div");
newNode.textContent = "The real deal";
newNode.classList.add("elem");
el.parentNode.replaceChild(newNode, el);
});
.container {
border: 1px solid #000;
min-height:50px;
background:#EEE;
}
.elem {
padding:10px;
border: 1px solid #000;
background:#FFF;
margin:5px;
display: inline-block;
}
<div id="c1" class="container">
<div class="elem">Icon1</div>
<div class="elem">Icon2</div>
<div class="elem">Icon3</div>
<div class="elem">Icon4</div>
<div class="elem">Icon5</div>
<div class="elem">Icon6</div>
</div>
<div id="c2" class="container"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/dragula/3.6.8/dragula.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/dragula/3.6.8/dragula.min.css" rel="stylesheet"
/>
正如你所看到的 - 這將替換降給我我想要的結果的元素。但是,拖動時的重影仍然是原始的「符號」元素。
是否有可能在拖動時替換「要被拖放」元素,以便重影和最終結果看起來像所需的元素?
是什麼'this._shadow'? – user3384985
這是我堅持dragula實例只是爲了把我用作假陰影的元素 –