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 相关文章推荐
baidu博客的编辑友情链接的新的层窗口!经典~支持【FF】
Feb 09 Javascript
Jquery Ajax学习实例7 Ajax所有过程事件分析示例
Mar 23 Javascript
几个有趣的Javascript Hack
Jul 24 Javascript
Asp.net下使用Jquery Ajax传送和接收DataTable的代码
Sep 12 Javascript
解决Extjs上传图片无法预览的解决方法
Mar 22 Javascript
javascript模拟枚举的简单实例
Mar 06 Javascript
JS中prototype的用法实例分析
Mar 19 Javascript
Angular 4环境准备与Angular cli创建项目详解
May 27 Javascript
vue刷新和tab切换实例
Feb 11 Javascript
vue2中使用less简易教程
Mar 27 Javascript
JavaScript实现点击出现图片并统计点击次数功能示例
Jul 23 Javascript
React更新渲染原理深入分析
Dec 24 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
虹吸式咖啡探讨–研磨
2021/03/03 冲泡冲煮
PHP 变量定义和变量替换的方法
2009/07/30 PHP
php操作mysqli(示例代码)
2013/10/28 PHP
PHP图像处理类库MagickWand用法实例分析
2015/05/21 PHP
php数组随机排序实现方法
2015/06/13 PHP
Jquery 1.42 checkbox 全选和反选代码
2010/03/27 Javascript
JavaScript中判断函数是new还是()调用的区别说明
2011/04/07 Javascript
Firefox中使用outerHTML的2种解决方法
2014/06/07 Javascript
jQuery使用fadeout实现元素渐隐效果的方法
2015/03/27 Javascript
jQuery事件绑定on()、bind()与delegate() 方法详解
2015/06/03 Javascript
每天一篇javascript学习小结(基础知识)
2015/11/10 Javascript
js仿支付宝多方框输入支付密码效果
2016/09/27 Javascript
AngularJS学习第一篇 AngularJS基础知识
2017/02/13 Javascript
Angular.JS中的指令引用template与指令当做属性详解
2017/03/30 Javascript
vue小图标favicon不显示的解决方案
2017/09/19 Javascript
js实现图片推拉门效果代码实例
2019/05/18 Javascript
python dict remove数组删除(del,pop)
2013/03/24 Python
Python开发WebService系列教程之REST,web.py,eurasia,Django
2014/06/30 Python
Python的Flask框架的简介和安装方法
2015/11/13 Python
TensorFlow 合并/连接数组的方法
2018/07/27 Python
python与caffe改变通道顺序的方法
2018/08/04 Python
深入浅析python3中的unicode和bytes问题
2019/07/03 Python
python的mysql数据库建立表与插入数据操作示例
2019/09/30 Python
Python中猜拳游戏与猜筛子游戏的实现方法
2020/09/04 Python
Pyqt助手安装PyQt5帮助文档过程图解
2020/11/20 Python
5分钟快速掌握Python定时任务框架的实现
2021/01/26 Python
html5 canvas里绘制椭圆并保持线条粗细均匀的技巧
2013/03/25 HTML / CSS
Corelle官方网站:购买康宁餐具
2016/11/02 全球购物
什么是Connection-oriented Protocol/Connectionless Protocol面向连接的协议/无连接协议
2012/09/06 面试题
初中生评语大全
2014/04/24 职场文书
小学教师个人先进事迹材料
2014/05/17 职场文书
企业公益活动策划方案
2014/08/24 职场文书
九一八事变纪念日演讲稿
2014/09/14 职场文书
2014报到证办理个人委托书
2014/10/08 职场文书
外科护士长工作总结
2015/08/12 职场文书
golang import自定义包方式
2021/04/29 Golang