最近在看h5拖放事件,發現一個有趣的現象,chrome下的拖放事件和別的瀏覽器有點不同。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Document</title>
<style>
*{
margin: 0;
padding: 0;
}
.container{
width: 200px;
height: 200px;
background: #ff0;
}
.drag{
width: 100px;
height: 100px;
background: pink;
}
</style>
</head>
<body>
<div class="container" id="container"></div>
<div class="drag" id="drag" draggable=true></div>
<script>
var drag = document.querySelector('#drag');
var container = document.querySelector('#container');
container.addEventListener('dragenter',function(evnet){
console.log('enter')
})
container.addEventListener('dragover',function(evnet){
console.log('over')
})
container.addEventListener('drop',function(evnet){
console.log('drop');
})
container.addEventListener('dragleave',function(evnet){
console.log('leave')
})
</script>
</body>
</html>複製程式碼
在chrome下,如果滑鼠放在拖動元素的上半部分,不管滑鼠往哪個方向移動,都會觸發目標元素的dragenter和dragleave事件。看下圖