前端拖拽drag的使用
·
HTML
设置 draggable 属性,可推拽
<div class="target" draggable="true">合格</div>
<div class="target" draggable="true">不合格</div>
<div class="target" draggable="true">合格</div>
<div class="target" draggable="true">合格</div>
<div style="display: flex;">
<div id="qualified">
<h1>合格</h1>
</div>
<div id="noqualified">
<h1>不合格</h1>
</div>
</div>
CSS:
<style>
.target {
width: 100px;
height: 20px;
background: #8A2BE2;
text-align: center;
color: #FFFFFF;
margin: 10px 0px;
}
#qualified {
width: 100px;
height: 200px;
background: #00fa11;
margin: 0px 10px;
}
#noqualified {
width: 100px;
height: 200px;
background: #850515;
margin: 0px 10px;
}
</style>
JavaScript
<script>
let target = null
let targets = document.getElementsByClassName('target')
console.log(targets)
for(let i =0; i < targets.length; i++){
targets[i].addEventListener('dragstart',function(evnt){
console.log('dragstart:',event)
target = event.target
event.dataTransfer.setData('text/plain',i)
},false)
}
document.addEventListener('drop',function(event){
console.log('drop:',event)
let currentDom = event.target
console.log(currentDom.id)
if(currentDom.id === 'qualified' || currentDom.id === 'noqualified') {
currentDom.appendChild(target)
console.log(event.dataTransfer.getData('text/plain'))
}
// event.preventDefault();
},false)
/** 监听 dragover 事件,并且 event.preventDefault()
*,不然 document 监听drop将不会触发
*/
document.addEventListener('dragover',function(event){
// console.log('dragover:',event)
event.preventDefault();
},false)
</script>
更多推荐



所有评论(0)