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 相关文章推荐
jQuery的一些特性和用法整理小结
Jan 13 Javascript
javascript 匿名函数的理解(透彻版)
Jan 28 Javascript
jquery实现的美女拼图游戏实例
May 04 Javascript
jQuery插件datalist实现很好看的input下拉列表
Jul 14 Javascript
Easyui Treegrid改变默认图标的方法
Apr 29 Javascript
全面解析Bootstrap中form、navbar的使用方法
May 30 Javascript
JS添加删除DIV的简单实例
Jul 08 Javascript
jQuery实现的无限级下拉菜单功能示例
Sep 12 Javascript
深入Node TCP模块的理解
Mar 13 Javascript
vue下载excel的实现代码后台用post方法
May 10 Javascript
前端 javascript 实现文件下载的示例
Nov 24 Javascript
Vue项目中使用mock.js的完整步骤
Jan 12 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
MacOS 安装 PHP的图片裁剪扩展Tclip
2015/03/25 PHP
html+js实现动态显示本地时间
2013/09/21 Javascript
js加载之使用DOM方法动态加载Javascript文件
2013/11/08 Javascript
jquery实现的随机多彩tag标签随机颜色和字号大小效果
2014/03/27 Javascript
JQuery球队选择实例
2015/05/18 Javascript
JS组件系列之Bootstrap table表格组件神器【终结篇】
2016/05/10 Javascript
完美解决IE不支持Data.parse()的问题
2016/11/24 Javascript
从零学习node.js之express入门(六)
2017/02/25 Javascript
vue实现表单录入小案例
2019/09/27 Javascript
jQuery实现验证用户登录
2019/12/10 jQuery
详解Vue template 如何支持多个根结点
2020/02/10 Javascript
Python yield 使用浅析
2015/05/28 Python
Django中更新多个对象数据与删除对象的方法
2015/07/17 Python
python二分查找算法的递归实现方法
2016/05/12 Python
python环形单链表的约瑟夫问题详解
2018/09/27 Python
python将excel转换为csv的代码方法总结
2019/07/03 Python
解决Jupyter notebook中.py与.ipynb文件的import问题
2020/04/21 Python
python 窃取摄像头照片的实现示例
2021/01/08 Python
CSS3文本换行word-wrap解决英文文本超过固定宽度不换行
2013/10/10 HTML / CSS
Artist Guitars新西兰:乐器在线商店
2017/09/17 全球购物
Skyscanner英国:苏格兰的全球三大领先航班搜索服务之一
2017/11/09 全球购物
美国浴缸、水槽和水龙头购物网站:Vintage Tub & Bath
2019/11/05 全球购物
新西兰购物网站:TheMarket NZ
2020/09/19 全球购物
What's the difference between an interface and abstract class? (接口与抽象类有什么区别)
2012/10/29 面试题
公司综合部的成员自我评价分享
2013/11/05 职场文书
咖啡馆创业计划书
2014/01/26 职场文书
运动会通讯稿100字
2014/01/31 职场文书
我的教育故事演讲稿
2014/05/04 职场文书
三年级班级文化建设方案
2014/05/04 职场文书
本科生求职信
2014/06/17 职场文书
单位法定代表人授权委托书
2014/09/20 职场文书
领导班子个人对照检查材料(群众路线)
2014/09/26 职场文书
慰问信范文
2015/02/14 职场文书
python中的class_static的@classmethod的巧妙用法
2021/06/22 Python
Vue.js中v-bind指令的用法介绍
2022/03/13 Vue.js
世界无敌的ICOM IC-R9500宽频接收机
2022/03/25 无线电