JS实现移动端触屏拖拽功能


Posted in Javascript onJuly 31, 2018

1.html

<div id="div1"></div>

2.css

* {
 margin: 0;
 padding: 0;
}
html,
body {
 width: 100%;
 height: 100%;
}
#div1 {
 width: 50px;
 height: 50px;
 background: cyan;
 position: absolute;
}

3.js

var div1 = document.querySelector('#div1');
//限制最大宽高,不让滑块出去
var maxW = document.body.clientWidth - div1.offsetWidth;
var maxH = document.body.clientHeight - div1.offsetHeight;
//手指触摸开始,记录div的初始位置
div1.addEventListener('touchstart', function(e) {
 var ev = e || window.event;
 var touch = ev.targetTouches[0];
 oL = touch.clientX - div1.offsetLeft;
 oT = touch.clientY - div1.offsetTop;
 document.addEventListener("touchmove", defaultEvent, false);
});
//触摸中的,位置记录
div1.addEventListener('touchmove', function(e) {
 var ev = e || window.event;
 var touch = ev.targetTouches[0];
 var oLeft = touch.clientX - oL;
 var oTop = touch.clientY - oT;
 if(oLeft < 0) {
 oLeft = 0;
 } else if(oLeft >= maxW) {
 oLeft = maxW;
 }
 if(oTop < 0) {
 oTop = 0;
 } else if(oTop >= maxH) {
 oTop = maxH;
 }
 div1.style.left = oLeft + 'px';
 div1.style.top = oTop + 'px';
});
//触摸结束时的处理
div1.addEventListener('touchend', function() {
 document.removeEventListener("touchmove", defaultEvent);
});
//阻止默认事件
function defaultEvent(e) {
 e.preventDefault();
}

3.效果

JS实现移动端触屏拖拽功能

JS实现移动端触屏拖拽功能

4.几点说明

      对于触屏手机端用手指事件,对于PC端用鼠标事件,其实原理都一样。

总结

以上所述是小编给大家介绍的JS实现移动端触屏拖拽功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
学习YUI.Ext基础第一天
Mar 10 Javascript
JavaScipt基本教程之JavaScript语言的基础
Jan 16 Javascript
javascript的onchange事件与jQuery的change()方法比较
Sep 28 Javascript
js操作select控件的几种方法
Jun 02 Javascript
给html超链接设置事件不使用href来完成跳
Apr 20 Javascript
jQuery中Ajax的load方法详解
Jan 14 Javascript
在JavaScript中使用NaN值的方法
Jun 05 Javascript
Javascript中Date类型和Math类型详解
Feb 27 Javascript
表单元素值获取方式js及java方式的简单实例
Oct 15 Javascript
JS/jQuery实现超简单的Table表格添加,删除行功能示例
Jul 31 jQuery
解决vue 子组件修改父组件传来的props值报错问题
Nov 09 Javascript
vue使用nprogress实现进度条
Dec 09 Javascript
JavaScript new对象的四个过程实例浅析
Jul 31 #Javascript
Vue 路由 过渡动效 数据获取方法
Jul 31 #Javascript
JS实现判断图片是否加载完成的方法分析
Jul 31 #Javascript
JavaScript+Canvas实现彩色图片转换成黑白图片的方法分析
Jul 31 #Javascript
vue实现word,pdf文件的导出功能
Jul 31 #Javascript
在create-react-app中使用css modules的示例代码
Jul 31 #Javascript
详解使用create-react-app添加css modules、sasss和antd
Jul 31 #Javascript
You might like
php分页示例代码
2007/03/19 PHP
基于PHP导出Excel的小经验 完美解决乱码问题
2013/06/10 PHP
Function eregi is deprecated (解决方法)
2013/06/21 PHP
浅析PHP中的字符串编码转换(自动识别原编码)
2013/07/02 PHP
PHP基于curl后台远程登录正方教务系统的方法
2016/10/14 PHP
PHP脚本自动识别验证码查询汽车违章
2016/12/20 PHP
php+redis消息队列实现抢购功能
2018/02/08 PHP
在IE下获取object(ActiveX)的Param的代码
2009/09/15 Javascript
jquery实现div拖拽宽度示例代码
2013/07/31 Javascript
javascript跨浏览器的属性判断方法
2014/03/16 Javascript
jQuery中借助deferred来请求及判断AJAX加载的实例讲解
2016/05/24 Javascript
javascript三种代码注释方法
2016/06/02 Javascript
学习掌握JavaScript中this的使用技巧
2016/08/29 Javascript
JavaScript实现拖拽元素对齐到网格(每次移动固定距离)
2016/11/30 Javascript
浅谈箭头函数写法在ReactJs中的使用
2017/08/22 Javascript
详解VUE里子组件如何获取父组件动态变化的值
2018/12/26 Javascript
JS写滑稽笑脸运动效果
2020/05/28 Javascript
解决VUE-Router 同一页面第二次进入不刷新的问题
2020/07/22 Javascript
js实现简易点击切换显示或隐藏
2020/11/29 Javascript
[02:32]DOTA2英雄基础教程 祸乱之源
2013/12/23 DOTA
[02:49]2014DOTA2电竞也是体育项目! 势要把荣誉带回中国!
2014/07/20 DOTA
python连接MySQL、MongoDB、Redis、memcache等数据库的方法
2013/11/15 Python
python 设置文件编码格式的实现方法
2017/12/21 Python
python list删除元素时要注意的坑点分享
2018/04/18 Python
在linux下实现 python 监控usb设备信号
2019/07/03 Python
解决Django连接db遇到的问题
2019/08/29 Python
scrapy数据存储在mysql数据库的两种方式(同步和异步)
2020/02/18 Python
突袭HTML5之Javascript API扩展3—本地存储全新体验
2013/01/31 HTML / CSS
德国领先的大尺码和超大尺码男装在线零售商:Bigtex
2019/06/22 全球购物
仓库班组长岗位职责
2013/12/12 职场文书
2016抗战胜利71周年红领巾广播稿
2015/12/18 职场文书
教师教育心得体会
2016/01/19 职场文书
优秀家长事迹材料(2016推荐版)
2016/02/29 职场文书
创业计划书之校园跑腿公司
2019/09/24 职场文书
JS新手入门数组处理的实用方法汇总
2021/04/07 Javascript
使用vue-element-admin框架从后端动态获取菜单功能的实现
2021/04/29 Vue.js