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实现的原图对比窗帘效果
Jun 15 Javascript
JavaScript使用Range调色及透明度实例
Sep 25 Javascript
详解jQuery中的事件
Dec 14 Javascript
JavaScript正则表达式校验与递归函数实际应用实例解析
Aug 04 Javascript
JavaScript选取(picking)和反选(rejecting)对象的属性方法
Aug 16 Javascript
JavaScript实现多态和继承的封装操作示例
Aug 20 Javascript
详解在Javascript中进行面向切面编程
Apr 28 Javascript
使用异步组件优化Vue应用程序的性能
Apr 28 Javascript
swiper实现异形轮播效果
Nov 28 Javascript
JS删除数组指定值常用方法详解
Jun 04 Javascript
如何在selenium中使用js实现定位
Aug 18 Javascript
vue动态绑定style样式
Apr 20 Vue.js
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 curl 并发最佳实践代码分享
2012/09/05 PHP
php读取本地文件常用函数(fopen与file_get_contents)
2013/09/09 PHP
yii2 页面底部加载css和js的技巧
2016/04/21 PHP
php获取微信共享收货地址的方法
2017/12/21 PHP
风吟的小型JavaScirpt库 (FY.JS).
2010/03/09 Javascript
jquery判断checkbox(复选框)是否被选中的代码
2010/10/20 Javascript
Knockout visible绑定使用方法
2013/11/15 Javascript
jquery可定制的在线UEditor编辑器
2015/11/17 Javascript
JavaScript事件详细讲解
2016/06/27 Javascript
D3.js中强制异步文件读取同步的几种方法
2017/02/06 Javascript
JavaScript 字符串数字左补位,右补位,取固定长度,截位扩展函数代码
2017/03/25 Javascript
JavaScript插件Tab选项卡效果
2017/11/14 Javascript
Nodejs调用Dll模块的方法
2018/09/17 NodeJs
详解Axios统一错误处理与后置
2018/09/26 Javascript
vue实现条件判断动态绑定样式的方法
2018/09/29 Javascript
基于Vue-cli快速搭建项目的完整步骤
2018/11/03 Javascript
利用es6 new.target来对模拟抽象类的方法
2019/05/10 Javascript
Python备份Mysql脚本
2008/08/11 Python
Python基础入门之seed()方法的使用
2015/05/15 Python
Python程序员面试题 你必须提前准备!(答案及解析)
2018/01/23 Python
python实现桌面托盘气泡提示
2019/07/29 Python
python multiprocessing多进程变量共享与加锁的实现
2019/10/02 Python
python文字转语音实现过程解析
2019/11/12 Python
浅谈Python中range与Numpy中arange的比较
2020/03/11 Python
写好求职应聘自荐信的三部曲
2013/09/21 职场文书
酒吧创业计划书
2014/01/18 职场文书
公务员转正鉴定材料
2014/02/11 职场文书
《囚绿记》教学反思
2014/03/01 职场文书
爱护公共设施的标语
2014/06/24 职场文书
学校施工安全责任书
2015/01/29 职场文书
工作岗位职责范本
2015/02/15 职场文书
2015年清明节网上祭英烈留言寄语
2015/03/04 职场文书
休学证明范本
2015/06/19 职场文书
餐馆开业致辞
2015/08/01 职场文书
CSS的class与id常用的命名规则
2021/05/18 HTML / CSS
redis 解决库存并发问题实现数量控制
2022/04/08 Redis