js实现盒子拖拽动画效果
更新时间:2020年08月09日 14:26:06 作者:cnkeysky
这篇文章主要为大家详细介绍了js实现盒子拖拽动画效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了js实现盒子拖拽动画的具体代码,供大家参考,具体内容如下
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>Document</title> <script src="jquery.js"></script> <style> * { margin: 0; padding: 0; } .wrap { width: 400px; height: 200px; border: 1px solid #ccc; border-right-color: red; position: absolute; top: 50%; left: 50%; margin-left: -200px; margin-top: -100px; box-sizing: border-box; } .wrap .head { height: 40px; padding-left: 4px; padding-right: 4px; background-color: #ccc; box-sizing: border-box; line-height: 40px; user-select: none; } .head:hover { cursor: move; } .head span { float: left; } #close { float: right; } #close:hover { cursor: pointer; } </style> </head> <body> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <p>tom</p> <div class="wrap"> <div class="head"> <span>试着拖拽我</span> <span id="close">【关闭】</span> </div> </div> <script> let wrap = document.querySelector('.wrap'); let close = document.getElementById('close'); let head = document.querySelector('.head'); head.onmousedown = function (e) { // 获得鼠标在 head 中的坐标 let x = e.pageX - wrap.offsetLeft; let y = e.pageY - wrap.offsetTop; console.log(x, y); document.onmousemove = function (e) { let xx = e.pageX - x; let yy = e.pageY - y; // 设置边界限制 xx = xx < 0 ? 0 : xx; yy = yy < 0 ? 0 : yy; if (xx >= innerWidth - wrap.offsetWidth) { document.documentElement.scrollLeft = 20; } else { document.documentElement.scrollLeft = 0; } xx = xx > innerWidth - wrap.offsetWidth ? innerWidth-wrap.offsetWidth : xx; yy = yy > innerHeight - wrap.offsetHeight + document.documentElement.scrollTop ? innerHeight - wrap.offsetHeight + document.documentElement.scrollTop : yy; wrap.style.left = xx + 'px'; wrap.style.top = yy + 'px'; // 禁止X滚动轴 document.body.style.overflowX = 'hidden'; wrap.style.marginLeft = 0; wrap.style.marginTop = 0; }; }; document.onmouseup = function () { document.onmousemove = null; }; close.onclick = function () { wrap.style.display = 'none'; }; </script> </body> </html>
实现效果:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
原生js实现可兼容PC和移动端的拖动滑块功能详解【测试可用】
这篇文章主要介绍了原生js实现可兼容PC和移动端的拖动滑块功能,结合实例形式详细分析了javascript事件响应及页面元素属性动态操作实现滑块拖动功能的相关操作技巧,需要的朋友可以参考下2019-08-08JS中mouseover和mouseout多次触发问题如何解决
这篇文章主要介绍了JS中mouseover和mouseout多次触发问题如何解决的相关资料,非常不错具有参考借鉴价值,需要的朋友可以参考下2016-06-06js中document.getElementByid、document.all和document.layers区分介绍
document.getElementById 是公共标准,被目前的所有主流浏览器支持,document.all只有IE支持,document.layers是Netscape 4.x专有的属性2011-12-12
最新评论