pc拖拽踩坑之路
今天搞了个拖拽发现挺多问题,上网找了下,主要是两个问题:需要在onmousedown和onmousemove添加阻止默认事件,主要是图片拖拽的默认事件和文本选中的默认事件,还要就是如果页面有iframe,阻止默认事件没有作用,需要弄个遮罩。
<body>
<div><p>哈哈哈哈哈哈哈哈哈哈或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或</p><p>哈哈哈哈哈哈哈哈哈哈或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或</p><p>哈哈哈哈哈哈哈哈哈哈或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或</p><p>哈哈哈哈哈哈哈哈哈哈或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或</p><p>哈哈哈哈哈哈哈哈哈哈或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或</p><p>哈哈哈哈哈哈哈哈哈哈或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或</p><p>哈哈哈哈哈哈哈哈哈哈或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或</p><p>哈哈哈哈哈哈哈哈哈哈或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或</p></div>
<iframe src="./frame.html" frameborder="0"></iframe>
<div class="box"><img src="https://t1.huanqiu.cn/5f1d86a6326280a9fbfe5e05e03fca9d.jpg" alt=""></div>
<div class="mask"></div>
</body>
<script>
window.onload = function(){
var oBox = document.getElementsByClassName('box')[0]
var mask = document.getElementsByClassName('mask')[0]
oBox.addEventListener('mousedown', function(e){
mask.style.display = 'block'
console.log(e)
var oEvent = e || event
var disX = oEvent.clientX - oBox.offsetLeft
var disY = oEvent.clientY - oBox.offsetTop
oEvent.preventDefault();
function move(e){
var oEvent = e || event
oEvent.preventDefault();
oBox.style.left = oEvent.clientX - disX + 'px'
oBox.style.top = oEvent.clientY - disY + 'px'
}
document.addEventListener('mousemove',move )
document.addEventListener('mouseup',function(){
document.removeEventListener('mousemove',move)
mask.style.display = 'none'
})
return false;
})
}
</script>