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 相关文章推荐
js操作select控件的几种方法
Jun 02 Javascript
解决jquery中动态新增的元素节点无法触发事件问题的两种方法
Oct 30 Javascript
node.js使用cluster实现多进程
Mar 17 Javascript
vue用addRoutes实现动态路由的示例
Sep 15 Javascript
Vue 2.0入门基础知识之内部指令详解
Oct 15 Javascript
如何使用50行javaScript代码实现简单版的call,apply,bind
Aug 14 Javascript
聊聊鉴权那些事(推荐)
Aug 22 Javascript
vue中监听返回键问题
Aug 28 Javascript
JS实现可控制的进度条
Mar 25 Javascript
在vue中使用echarts(折线图的demo,markline用法)
Jul 20 Javascript
原生js+css实现tab切换功能
Sep 17 Javascript
js之ajax文件上传
May 13 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生成UTF8文件的方法
2010/05/15 PHP
SWFUpload与CI不能正确上传识别文件MIME类型解决方法分享
2011/04/18 PHP
一个比较不错的PHP日历类分享
2014/11/18 PHP
laravel 解决多库下的DB::transaction()事务失效问题
2019/10/21 PHP
由JavaScript技术实现的web小游戏(不含网游)
2010/06/12 Javascript
javascript 随机展示头像实现代码
2011/12/06 Javascript
jquery控制左右箭头滚动图片列表的实例
2013/05/20 Javascript
仿谷歌主页js动画效果实现代码
2013/07/14 Javascript
js中文逗号转英文实现
2014/02/11 Javascript
JavaScript中的Web worker多线程API研究
2014/12/06 Javascript
js实现简单锁屏功能实例
2015/05/27 Javascript
详解AngularJS中自定义指令的使用
2015/06/17 Javascript
jQuery插件实现文件上传功能(支持拖拽)
2020/08/27 Javascript
利用Angularjs和原生JS分别实现动态效果的输入框
2016/09/01 Javascript
svg动画之动态描边效果
2017/02/22 Javascript
Mongoose实现虚拟字段查询的方法详解
2017/08/15 Javascript
浅谈如何通过node.js对数据进行MD5加密
2018/05/16 Javascript
vue动画打包后失效问题的解决方法
2018/09/18 Javascript
vue axios请求成功却进入catch的原因分析
2020/09/08 Javascript
[13:38]2015国际邀请赛中国战队出征仪式
2015/05/29 DOTA
Python队列的定义与使用方法示例
2017/06/24 Python
JPype实现在python中调用JAVA的实例
2017/07/19 Python
matplotlib中legend位置调整解析
2017/12/19 Python
Python基于列表list实现的CRUD操作功能示例
2018/01/05 Python
python实现list由于numpy array的转换
2018/04/04 Python
基于树莓派的语音对话机器人
2019/06/17 Python
Python爬虫教程知识点总结
2020/10/19 Python
Python实现网络聊天室的示例代码(支持多人聊天与私聊)
2021/01/27 Python
出国签证在职证明
2014/09/20 职场文书
党员教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
2016年校长新年寄语
2015/08/17 职场文书
青少年法制教育心得体会
2016/01/14 职场文书
Python+Appium新手教程
2021/04/17 Python
【海涛解说】pis亲自推荐,其实你从来不会玩NW
2022/04/01 DOTA
基于Python实现射击小游戏的制作
2022/04/06 Python
Win11 PC上的Outlook搜索错误怎么办?
2022/07/15 数码科技