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 相关文章推荐
javascript 动态参数判空操作
Dec 22 Javascript
javascript 支持链式调用的异步调用框架Async.Operation
Aug 04 Javascript
JavaScript高级程序设计 读书笔记之十一 内置对象Global
Mar 07 Javascript
常用jQuery选择器总结
Jul 11 Javascript
jQuery+css3动画属性制作猎豹浏览器宽屏banner焦点图
Mar 16 Javascript
JQuery CheckBox(复选框)操作方法汇总
Apr 15 Javascript
jquery判断密码强度的验证代码
Apr 22 Javascript
H5基于iScroll实现下拉刷新和上拉加载更多
Jul 18 Javascript
使用nvm管理不同版本的node与npm的方法
Oct 31 Javascript
JS实现登录页密码的显示和隐藏功能
Dec 06 Javascript
Vue中的作用域CSS和CSS模块的区别
Oct 09 Javascript
Vue中computed及watch区别实例解析
Aug 01 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的源码中深入了解stdClass类
2014/04/18 PHP
PHP去掉json字符串中的反斜杠\及去掉双引号前的反斜杠
2015/09/30 PHP
php递归函数怎么用才有效
2018/02/24 PHP
Laravel5.5 实现后台管理登录的方法(自定义用户表登录)
2019/09/30 PHP
Ajax,UTF-8还是GB2312 eval 还是execScript
2008/11/13 Javascript
Dom 是什么的详细说明
2010/10/25 Javascript
javascript判断ie浏览器6/7版本加载不同样式表的实现代码
2011/12/26 Javascript
使用JS读秒使用示例
2013/09/21 Javascript
jquery绑定事件不生效的解决方法
2014/02/11 Javascript
jQuery弹出框代码封装DialogHelper
2015/01/30 Javascript
JavaScript中的普通函数与构造函数比较
2015/04/07 Javascript
分享Javascript实用方法二
2015/12/13 Javascript
js事件处理程序跨浏览器解决方案
2016/03/27 Javascript
JavaScript对象数组如何按指定属性和排序方向进行排序
2016/06/15 Javascript
基于百度地图api清除指定覆盖物(Overlay)的方法
2018/01/26 Javascript
详解Webpack-dev-server的proxy用法
2018/09/08 Javascript
通过扫小程序码实现网站登陆功能
2019/08/22 Javascript
Python生成不重复随机值的方法
2015/05/11 Python
在Django的模型中添加自定义方法的示例
2015/07/21 Python
python中urllib.unquote乱码的原因与解决方法
2017/04/24 Python
python实现SOM算法
2018/02/23 Python
让Django支持Sql Server作后端数据库的方法
2018/05/29 Python
一行python实现树形结构的方法
2019/08/09 Python
python实现串口通信的示例代码
2020/02/10 Python
Python实现猜年龄游戏代码实例
2020/03/25 Python
五分钟学会怎么用Pygame做一个简单的贪吃蛇
2021/01/06 Python
实习自我鉴定范文
2013/10/30 职场文书
高中政治教学反思
2014/01/18 职场文书
优秀学生获奖感言
2014/02/15 职场文书
物理力学求职信
2014/02/18 职场文书
学校党员个人问题整改措施思想汇报
2014/10/08 职场文书
优秀班主任申报材料
2014/12/16 职场文书
2015年创先争优活动总结
2015/03/27 职场文书
幼儿园开学家长寄语(2015秋季)
2015/05/27 职场文书
出生证明范本
2015/06/15 职场文书
使用Spring处理x-www-form-urlencoded方式
2021/11/02 Java/Android