JS怎样实现移动端的拖动效果?
Admin 2021-10-19 群英技术资讯 452 次浏览
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进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
每个前端项目都有 npm scripts,我们会用 npm scripts 来组织编译、打包、lint 等任务。 大家可能经常会跑 npm scripts,但却对这些命令行工具是怎么实现的并不了解。
今天给大家分享的是JS代码编译器的内容,但是JavaScript的代码编译器有很多,这篇文章就主要介绍编译器Monaco的安装和使用,下文有详细的介绍,感兴趣的朋友可以参考。
这篇文章主要为大家详细介绍了vue移动端判断手指在屏幕滑动方向,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
这篇文章主要介绍了JavaScript 实现页面滚动动画的方法,帮助大家更好的理解和学习使用JavaScript,感兴趣的朋友可以了解下
echarts是非常好用的图表插件,下面这篇文章主要给大家介绍了关于ECharts多图表联动功能的相关资料,需要的朋友可以参考下
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008