JavaScript实现移动端拖动元素


Posted in Javascript onNovember 24, 2020

本文实例为大家分享了JavaScript实现移动端拖动元素的具体代码,供大家参考,具体内容如下

实现效果:

JavaScript实现移动端拖动元素

请切换到移动端页面查看!

JavaScript实现移动端拖动元素

代码实现:

<!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>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js事件冒泡实例分享(已测试)
Apr 23 Javascript
可编辑下拉框的2种实现方式
Jun 13 Javascript
js HTML5 Canvas绘制转盘抽奖
Sep 13 Javascript
JS作用域深度解析
Dec 29 Javascript
canvas实现图像截取功能
Feb 06 Javascript
babel之配置文件.babelrc入门详解
Feb 22 Javascript
vue.js-div滚动条隐藏但有滚动效果的实现方法
Mar 03 Javascript
解决使用vue.js路由后失效的问题
Mar 17 Javascript
解决Layui 表单提交数据为空的问题
Aug 15 Javascript
vue控制多行文字展开收起的实现示例
Oct 11 Javascript
微信小程序实现canvas分享朋友圈海报
Jun 21 Javascript
Postman无法正常返回结果问题解决
Aug 28 Javascript
小程序组件传值和引入sass的方法(使用vant Weapp组件库)
Nov 24 #Javascript
js实现抽奖功能
Nov 24 #Javascript
前端 javascript 实现文件下载的示例
Nov 24 #Javascript
如何使用 JavaScript 操作浏览器历史记录 API
Nov 24 #Javascript
JavaScript实现鼠标移入随机变换颜色
Nov 24 #Javascript
原生js实现表格循环滚动
Nov 24 #Javascript
浅析VUE防抖与节流
Nov 24 #Vue.js
You might like
php 之 没有mysql支持时的替代方案
2006/10/09 PHP
一段防盗连的PHP代码
2006/12/06 PHP
PHP经典算法集锦【经典收藏】
2016/09/14 PHP
jquery ajax实现下拉框三级无刷新联动,且保存保持选中值状态
2013/10/29 Javascript
JavaScript实现的日期控件具体代码
2013/11/18 Javascript
node.js中的fs.rmdir方法使用说明
2014/12/16 Javascript
JS组件Bootstrap dropdown组件扩展hover事件
2016/04/17 Javascript
JavaScript中获取时间的函数集
2016/08/16 Javascript
nodejs实现发出蜂鸣声音(系统报警声)的方法
2017/01/18 NodeJs
Vue 短信验证码组件开发详解
2017/02/14 Javascript
教你用十行node.js代码读取docx的文本
2017/03/08 Javascript
jQuery实现jQuery-form.js实现异步上传文件
2017/04/28 jQuery
利用angular、react和vue实现相同的面试题组件
2018/02/19 Javascript
JavaScript实现预览本地上传图片功能完整示例
2019/03/08 Javascript
Vue基本使用之对象提供的属性功能
2019/04/30 Javascript
ES6 Promise对象的应用实例分析
2019/06/27 Javascript
解决Layui当中的导航条动态添加后渲染失败的问题
2019/09/25 Javascript
js实现GIF动图分解成多帧图片上传
2019/10/24 Javascript
react国际化化插件react-i18n-auto使用详解
2020/03/31 Javascript
[03:40]DOTA2亚洲邀请赛小组赛第二日 赛事回顾
2015/01/31 DOTA
python使用matplotlib绘制折线图教程
2017/02/08 Python
Python实现查看系统启动项功能示例
2018/05/10 Python
python使用正则表达式去除中文文本多余空格,保留英文之间空格方法详解
2020/02/11 Python
Eclipse配置python默认头过程图解
2020/04/26 Python
Python web如何在IIS发布应用过程解析
2020/05/27 Python
基于Python实现2种反转链表方法代码实例
2020/07/06 Python
python中str内置函数用法总结
2020/12/27 Python
June Jacobs尊积帕官网:知名的spa水疗护肤品牌
2019/03/21 全球购物
医生自荐信
2013/10/11 职场文书
诉讼财产保全担保书
2014/05/20 职场文书
银行授权委托书格式
2014/10/10 职场文书
求职信范文怎么写
2015/03/19 职场文书
重阳节主题班会
2015/08/17 职场文书
java调用Restful接口的三种方法
2021/08/23 Java/Android
vue router 动态路由清除方式
2022/05/25 Vue.js
Mysql数据库group by原理详解
2022/07/07 MySQL