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 相关文章推荐
jQuery(1.3.2) 7行代码搞定跟随屏幕滚动的层
May 21 Javascript
jQuery 获取对象 根据属性、内容匹配, 还有表单元素匹配
May 31 Javascript
jquery批量设置属性readonly和disabled的方法
Jan 24 Javascript
javascript中加号(+)操作符的一些神奇作用
Jun 06 Javascript
原生js和jquery实现图片轮播特效
Apr 23 Javascript
BootStrap轻松实现微信页面开发代码分享
Oct 21 Javascript
详解jQuery中的DOM操作
Dec 23 Javascript
JavaScript实现跟随滚动缓冲运动广告框
Jul 15 Javascript
微信小程序methods中定义的方法互相调用的实例代码
Aug 07 Javascript
cocos2dx+lua实现橡皮擦功能
Dec 20 Javascript
Vue $mount实战之实现消息弹窗组件
Apr 22 Javascript
vue 单页应用和多页应用的优劣
Oct 22 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
建立文件交换功能的脚本(三)
2006/10/09 PHP
php学习之数据类型之间的转换代码
2011/05/29 PHP
使用php记录用户通过搜索引擎进网站的关键词
2014/02/13 PHP
php使用iconv中文截断问题的解决方法
2015/02/11 PHP
PHP实现通过get方式识别用户发送邮件的方法
2015/07/16 PHP
php类自动加载器实现方法
2015/07/28 PHP
Laravel实现自定义错误输出内容的方法
2016/10/10 PHP
PHP获取真实客户端的真实IP
2017/03/07 PHP
ThinkPHP框架实现FTP图片上传功能示例
2019/04/08 PHP
通过修改referer下载文件的方法
2008/05/11 Javascript
JavaScript获取GridView选择的行内容
2009/04/14 Javascript
jquery radio 操作代码
2011/03/16 Javascript
jQuery Trim去除字符串首尾空字符的实现方法说明
2014/02/11 Javascript
DIV始终居中的js代码
2014/02/17 Javascript
Jquery 点击按钮自动高亮实现原理及代码
2014/04/25 Javascript
JQuery日历插件My97DatePicker日期范围限制
2016/01/20 Javascript
JavaScript简单获取页面图片原始尺寸的方法
2016/06/21 Javascript
Vue.js中数据绑定的语法教程
2017/06/02 Javascript
JS实现前端路由功能示例【原生路由】
2020/05/29 Javascript
[02:09:59]火猫TV国士无双dota2 6.82版本详解(下)
2014/09/29 DOTA
[43:57]LGD vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python求导数的方法
2015/05/09 Python
pandas对指定列进行填充的方法
2018/04/11 Python
python3利用venv配置虚拟环境及过程中的小问题小结
2018/08/01 Python
浅谈django的render函数的参数问题
2018/10/16 Python
python使用socket实现的传输demo示例【基于TCP协议】
2019/09/24 Python
使用python客户端访问impala的操作方式
2020/03/28 Python
印度网上购物首选目的地:Flipkart
2016/08/01 全球购物
JNI的定义
2012/11/25 面试题
2014年教师培训的自我评价
2014/01/03 职场文书
2014年综治宣传月活动总结
2014/04/28 职场文书
趣味运动会广播稿
2014/09/13 职场文书
金砖之国观后感
2015/06/11 职场文书
退休欢送会主持词
2015/07/01 职场文书
Python 中random 库的详细使用
2021/06/03 Python
springboot拦截器无法注入redisTemplate的解决方法
2021/06/27 Java/Android