用原生JS怎么实现可拖拽并添加预览的效果
Admin 2022-06-24 群英技术资讯 265 次浏览
本文给大家分享一个拖拽元素时添加预览的小Demo,效果如下:
以下是代码实现,欢迎大家复制粘贴及吐槽。
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>原生JS实现拖拽位置预览</title> <style> .box { position: absolute; border: 1px dashed black; } #div1 { width: 100px; height: 100px; background: yellow; position: absolute; } </style> <script> window.onload = function () { var oDiv = document.getElementById('div1'); oDiv.onmousedown = function (ev) { var oEvent = ev || event; var disX = oEvent.clientX - oDiv.offsetLeft; var disY = oEvent.clientY - oDiv.offsetTop; //创建一个虚线框的div var oNewDiv = document.createElement('div'); oNewDiv.className = 'box'; //减去边框的大小与原div大小重合 oNewDiv.style.width = oDiv.offsetWidth - 2 + 'px'; oNewDiv.style.height = oDiv.offsetHeight - 2 + 'px'; oNewDiv.style.left = oDiv.offsetLeft + 'px'; oNewDiv.style.top = oDiv.offsetTop + 'px'; document.body.appendChild(oNewDiv); document.onmousemove = function (ev) { var oEvent = ev || event; oNewDiv.style.left = oEvent.clientX - disX + 'px'; oNewDiv.style.top = oEvent.clientY - disY + 'px'; }; document.onmouseup = function () { document.onmousemove = null; document.onmouseup = null; oDiv.style.left = oNewDiv.style.left; oDiv.style.top = oNewDiv.style.top; //移除虚线框 document.body.removeChild(oNewDiv); }; }; }; </script> </head> <body> <div id="div1"></div> </body> </html>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
如果调用者在函数返回时能够获得预期结果(即获得预期返回值或看到预期效果),则该函数同步。如果函数同步,即使调用函数执行的任务耗时,也会等到得到预期的结果。
我们在做前端项目开发时,往往会遇到登录页面记住密码的需求。那么我们在vue登录页面要如何来实现这样的功能?本文就教大家vue登录页面用cookie实现记住七天密码的功能。感兴趣的朋友继续往下看吧。
这篇文章主要为大家详细介绍了JavaScript实现简单的拖拽效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
这篇文章主要为大家详细介绍了js实现音乐播放器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
现在很多网站都有设置防盗链,那么防盗链的原理究竟是什么呢?有何破解方法?这些都是大家比较感兴趣的问题,因此下面小编就给大家分享关于JavaScript 防盗链的原理以及破解方法。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008