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中的Web worker多线程API研究
Dec 06 Javascript
15个常用的jquery代码片段
Dec 19 Javascript
实例详解ECMAScript5中新增的Array方法
Apr 05 Javascript
原生javascript 学习之js变量全面了解
Jul 14 Javascript
JSON与JS对象的区别与对比
Mar 01 Javascript
JQuery实现定时刷新功能代码
May 09 jQuery
JS库之Waypoints的用法详解
Sep 13 Javascript
react+redux的升级版todoList的实现
Dec 18 Javascript
vue spa应用中的路由缓存问题与解决方案
May 31 Javascript
微信小程序实现类似微信点击语音播放效果
Mar 30 Javascript
基于Vue 撸一个指令实现拖拽功能
Oct 09 Javascript
Vue中component标签解决项目组件化操作
Sep 04 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中取得image按钮传递的name值
2006/10/09 PHP
php trim 去除空字符的定义与语法介绍
2010/05/31 PHP
PHP文件读写操作之文件读取方法详解
2011/01/13 PHP
php中is_null,empty,isset,unset 的区别详细介绍
2013/04/28 PHP
解析thinkphp的左右值无限分类
2013/06/20 PHP
Thinkphp中volist标签mod控制一定记录的换行BUG解决方法
2014/11/04 PHP
smarty模板引擎从配置文件中获取数据的方法
2015/01/22 PHP
使用PHPStorm+XDebug搭建单步调试环境
2017/11/19 PHP
分享几种好用的PHP自定义加密函数(可逆/不可逆)
2020/09/15 PHP
推荐40个非常优秀的jQuery插件和教程【系列三】
2011/11/09 Javascript
JS 作用域与作用域链详解
2015/04/07 Javascript
jQuery插件slicebox实现3D动画图片轮播切换特效
2015/04/12 Javascript
JS实现CheckBox复选框全选全不选功能
2015/05/06 Javascript
最全的JavaScript开发工具列表 总有一款适合你
2017/06/29 Javascript
当vue路由变化时,改变导航栏的样式方法
2018/08/22 Javascript
Nuxt.js实战和配置详解
2019/08/05 Javascript
解决layer.open后laydate失效的问题
2019/09/06 Javascript
Jquery使用each函数实现遍历及数组处理
2020/07/14 jQuery
python实现分析apache和nginx日志文件并输出访客ip列表的方法
2015/04/04 Python
用matplotlib画等高线图详解
2017/12/14 Python
python2.7+selenium2实现淘宝滑块自动认证功能
2018/02/24 Python
怎么使用pipenv管理你的python项目
2018/03/12 Python
Python装饰器模式定义与用法分析
2018/08/06 Python
python logging模块书写日志以及日志分割详解
2019/07/22 Python
django rest framework 实现用户登录认证详解
2019/07/29 Python
Python3并发写文件与Python对比
2019/11/20 Python
Python代码生成视频的缩略图的实例讲解
2019/12/22 Python
Python错误的处理方法
2020/06/23 Python
Python中logging日志的四个等级和使用
2020/11/17 Python
施华洛世奇日本官网:SWAROVSKI日本
2018/05/04 全球购物
运动会广播稿200字
2014/01/15 职场文书
浙江文明网签名寄语
2014/01/18 职场文书
电子专业求职信
2014/06/19 职场文书
动物科学专业求职信
2014/07/27 职场文书
七个非常实用的Python工具包总结
2021/06/15 Python
maven依赖的version声明控制方式
2022/01/18 Java/Android