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 相关文章推荐
DB.ASP 用Javascript写ASP很灵活很好用很easy
Jul 31 Javascript
formvalidator验证插件中有关ajax验证问题
Jan 04 Javascript
js实现屏蔽默认快捷键调用自定义事件示例
Jun 18 Javascript
JavaScript编写点击查看大图的页面半透明遮罩层效果实例
May 09 Javascript
BootStrap tab选项卡使用小结
Aug 09 Javascript
微信小程序开发(二)图片上传+服务端接收详解
Jan 11 Javascript
微信小程序本作用域下调用全局JS详解及实例
Feb 22 Javascript
微信小程序如何获取用户信息
Jan 26 Javascript
详解Angular调试技巧之报错404(not found)
Jan 31 Javascript
jQuery实现表单动态添加数据并提交的方法
Jul 19 jQuery
Bootbox将后台JSON数据填充Form表单的实例代码
Sep 10 Javascript
Openlayers绘制聚合标注
Sep 28 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
全国FM电台频率大全 - 5 内蒙古自治区
2020/03/11 无线电
删除及到期域名的查看(抢域名必备哦)
2008/05/14 PHP
浅析is_writable的php实现
2013/06/18 PHP
Yii2选项卡的简单使用
2017/05/26 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
2018/06/13 PHP
jQuery定义背景动态切换效果的方法
2015/03/23 Javascript
对象转换为原始值的实现方法
2016/06/06 Javascript
bootstrap实现每隔5秒自动轮播效果
2016/12/20 Javascript
详解handlebars+require基本使用方法
2016/12/21 Javascript
iframe与主框架跨域相互访问实现方法
2017/09/14 Javascript
快速解决处理后台返回json数据格式的问题
2018/08/07 Javascript
微信小程序实现两个页面传值的方法分析
2018/12/11 Javascript
vue.js+elementUI实现点击左右箭头切换头像功能(类似轮播图效果)
2019/09/05 Javascript
nodejs中使用archive压缩文件的实现代码
2019/11/26 NodeJs
Python的MongoDB模块PyMongo操作方法集锦
2016/01/05 Python
Python实现简单过滤文本段的方法
2017/05/24 Python
python实现学生管理系统
2018/01/11 Python
Python绘制3D图形
2018/05/03 Python
Python pycharm 同时加载多个项目的方法
2019/01/17 Python
Python CSV文件模块的使用案例分析
2019/12/21 Python
如何在windows下安装配置python工具Ulipad
2020/10/27 Python
python 基于UDP协议套接字通信的实现
2021/01/22 Python
css3实现椭圆轨迹旋转的示例代码
2018/10/29 HTML / CSS
HTML5中Canvas与SVG的画图原理比较
2013/01/16 HTML / CSS
localstorage和sessionstorage使用记录(推荐)
2017/05/23 HTML / CSS
H&M美国官网:欧洲最大的服饰零售商
2016/09/07 全球购物
TripAdvisor土耳其网站:全球知名旅行社区,真实旅客评论
2017/04/17 全球购物
初中生个人学习的自我评价
2013/12/04 职场文书
委托证明的格式
2014/01/10 职场文书
订货会邀请函
2015/01/31 职场文书
婚庆主持词大全
2015/06/30 职场文书
2015秋季幼儿园开学通知
2015/07/16 职场文书
2016高考冲刺决心书
2015/09/23 职场文书
Mysql 8.x 创建用户以及授予权限的操作记录
2022/04/18 MySQL
方法汇总:Python 安装第三方库常用
2022/04/26 Python
JavaScript中reduce()的用法
2022/05/11 Javascript