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 相关文章推荐
基于JavaScript 类的使用详解
May 07 Javascript
js判断字符长度以及中英文数字等
Dec 31 Javascript
PhantomJS快速入门教程(服务器端的 JavaScript API 的 WebKit)
Aug 06 Javascript
jQuery使用$.each遍历json数组的简单实现方法
Apr 18 Javascript
js实现div模拟模态对话框展现URL内容
May 27 Javascript
详解在Vue中有条件地使用CSS类
Sep 30 Javascript
webpack中的热刷新与热加载的区别
Apr 09 Javascript
使用JavaScript中的lodash编写双色球效果
Jun 24 Javascript
npm配置国内镜像资源+淘宝镜像的方法
Sep 07 Javascript
微信小程序实现树莓派(raspberry pi)小车控制
Feb 12 Javascript
vue祖孙组件之间的数据传递案例
Dec 07 Vue.js
Vue ECharts实现机舱座位选择展示功能
May 15 Vue.js
小程序组件传值和引入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
让这部DC动画新作刷新你的认知
2020/03/03 欧美动漫
PHP+Tidy-完美的XHTML纠错+过滤
2007/04/10 PHP
无刷新动态加载数据 滚动条加载适合评论等页面
2013/10/16 PHP
php命名空间学习详解
2014/02/27 PHP
php字符串分割函数用法实例
2015/03/17 PHP
使用phpstorm和xdebug实现远程调试的方法
2015/12/29 PHP
PHP基于DOMDocument解析和生成xml的方法分析
2017/07/17 PHP
JObj预览一个JS的框架
2008/03/13 Javascript
仅IE不支持setTimeout/setInterval函数的第三个以上参数
2011/05/25 Javascript
将字符串中由空格隔开的每个单词首字母大写
2014/04/06 Javascript
jquery bind(click)传参让列表中每行绑定一个事件
2014/08/06 Javascript
详解Javacript和AngularJS中的Promises
2016/02/09 Javascript
JS根据浏览器窗口大小实时动态改变网页文字大小的方法
2016/02/25 Javascript
JS实现重新加载当前页面或者父页面的几种方法
2016/11/30 Javascript
jQuery实现图片滑动效果
2017/03/08 Javascript
Vue 创建组件的两种方法小结(必看)
2018/02/23 Javascript
Node.js静态服务器的实现方法
2018/02/28 Javascript
vue2.0+koa2+mongodb实现注册登录
2018/04/10 Javascript
vue基础之使用get、post、jsonp实现交互功能示例
2019/03/12 Javascript
vue 项目中当访问路由不存在的时候默认访问404页面操作
2020/08/31 Javascript
python 实现提取某个索引中某个时间段的数据方法
2019/02/01 Python
python实现杨氏矩阵查找
2019/03/02 Python
使用Python创建简单的HTTP服务器的方法步骤
2019/04/26 Python
解决Django连接db遇到的问题
2019/08/29 Python
Python partial函数原理及用法解析
2019/12/11 Python
IntelliJ 中配置 Anaconda的过程图解
2020/06/01 Python
python实现批量转换图片为黑白
2020/06/16 Python
美国最大的网络男装服装品牌:Bonobos
2017/05/25 全球购物
Python使用openpyxl复制整张sheet
2021/03/24 Python
证券期货行业个人的自我评价
2013/12/26 职场文书
无犯罪记录证明范本
2014/09/15 职场文书
2014村党支部书记党建工作汇报材料
2014/11/02 职场文书
挂职锻炼个人总结
2015/03/05 职场文书
2015年仓库管理员工作总结
2015/04/21 职场文书
承诺书的内容有哪些,怎么写?
2019/06/21 职场文书
SQL bool盲注和时间盲注详解
2022/07/23 SQL Server