JS怎样实现移动端的拖动效果?
Admin 2021-10-19 群英技术资讯 601 次浏览
JS怎样实现移动端的拖动效果?移动端的拖动元素的效果想必大家应该都很熟悉,那么这个效果是怎样做的呢?下面我们就来看看用JS实现移动端拖动元素的具体代码。
实现效果:
请切换到移动端页面查看!
代码实现:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <style> body { background-color: #1cee89; } div { position: absolute; left: 0; width: 100px; height: 100px; background-color: #8294ff; border-radius: 20px; } </style> </head> <body> <div></div> <script> var div = document.querySelector('div'); var startX = 0; // 获取手指初始坐标 var startY = 0; var x = 0; // 获得盒子原来的位置 var y = 0; // 手指触摸 div.addEventListener('touchstart', function(e) { // 获取手指初始坐标 startX = e.targetTouches[0].pageX; startY = e.targetTouches[0].pageY; x = this.offsetLeft; y = this.offsetTop; this.style.boxShadow = '0 0 15px rgba(0, 0, 0, .6)'; }); // 手指离开 div.addEventListener('touchend', function(e) { this.style.boxShadow = ''; }); // 手指按住移动 div.addEventListener('touchmove', function(e) { // 计算手指的移动距离:手指移动之后的坐标减去手指初始的坐标 var moveX = e.targetTouches[0].pageX - startX; var moveY = e.targetTouches[0].pageY - startY; // 移动盒子 盒子原来的位置 + 手指移动的距离 this.style.left = x + moveX + 'px'; this.style.top = y + moveY + 'px'; e.preventDefault(); // 阻止屏幕滚动的默认行为 }); </script> </body> </html>
以上就是JS实现移动端拖动元素的具体代码,有需要的朋友可以参考,希望对大家学习JS有帮助,想要了解更多可以继续浏览群英网络其他相关的文章。
文本转载自脚本之家
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要为大家详细介绍了微信小程序自定义底部弹出框动画,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
这篇文章主要介绍了react-native 实现购物车滑动删除效果的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
本篇文章带大家了解一下Angular中的5种类(class)装饰器,希望对大家有所帮助!
众所周知,一般界面很多情况涉及到树列表的处理,如类型展示,如果是一层的,可以用下拉列表代替,如果是多个层级的,采用树控件展示会更加直观。
这篇文章我们来了解TypeScript的函数重载功能的相关内容,主要介绍TypeScript中函数重载写法,下文有很详细的介绍,对大家学习或工作会有帮助,接下来就跟随小编来一起学习一下吧!
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008