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 String 的扩展方法集合
Jun 01 Javascript
jQuery的实现原理的模拟代码 -3 事件处理
Aug 03 Javascript
Javascript 拖拽雏形(逐行分析代码,让你轻松了拖拽的原理)
Jan 23 Javascript
js给网页加上背景音乐及选择音效的方法
Mar 03 Javascript
jQuery实现给页面换肤的方法
May 30 Javascript
详解JavaScript中setSeconds()方法的使用
Jun 11 Javascript
Grunt入门教程(自动任务运行器)
Aug 06 Javascript
Vue实现双向绑定的方法
Dec 22 Javascript
flexslider.js实现移动端轮播
Feb 05 Javascript
javascript trie前缀树的示例
Jan 29 Javascript
几个你不知道的技巧助你写出更优雅的vue.js代码
Jun 11 Javascript
微信小程序实现文字从右向左无限滚动
Nov 18 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读取数据库信息的几种方法
2008/05/24 PHP
PHP笔记之:日期函数的使用介绍
2013/04/24 PHP
php连接与操作PostgreSQL数据库的方法
2014/12/25 PHP
PHP实现无限级分类(不使用递归)
2015/10/22 PHP
php基于jquery的ajax技术传递json数据简单实例
2016/04/15 PHP
PHP中静态变量的使用方法实例分析
2016/12/01 PHP
php利用imagemagick实现复古老照片效果实例
2017/02/16 PHP
PHP弱类型语言中类型判断操作实例详解
2017/08/10 PHP
浅谈关于PHP解决图片无损压缩的问题
2017/09/01 PHP
禁止刷新,回退的JS
2006/11/25 Javascript
用jQuery打造TabPanel效果代码
2010/05/22 Javascript
EXT窗口Window及对话框MessageBox
2011/01/27 Javascript
jQuery版仿Path菜单效果
2011/12/15 Javascript
JavaScript判断手机号运营商是移动、联通、电信还是其他(代码简单)
2015/09/25 Javascript
分享网页检测摇一摇实例代码
2016/01/14 Javascript
微信小程序实现给循环列表添加点击样式实例
2017/04/26 Javascript
jquery在启动页面时,自动加载数据的实例
2018/01/22 jQuery
详解关于Angular4 ng-zorro使用过程中遇到的问题
2018/12/05 Javascript
VUE引入第三方js包及调用方法讲解
2019/03/01 Javascript
Vue实现搜索结果高亮显示关键字
2019/05/28 Javascript
关于vue3默认把所有onSomething当作v-on事件绑定的思考
2020/05/15 Javascript
浅谈vue 组件中的setInterval方法和window的不同
2020/07/30 Javascript
Python random模块(获取随机数)常用方法和使用例子
2014/05/13 Python
Linux中Python 环境软件包安装步骤
2016/03/31 Python
python将文本分每两行一组并保存到文件
2018/03/19 Python
获取python的list中含有重复值的index方法
2018/06/27 Python
Python多进程入门、分布式进程数据共享实例详解
2019/06/03 Python
离线状态下在jupyter notebook中使用plotly实例
2020/04/24 Python
Python 判断时间是否在时间区间内的实例
2020/05/16 Python
tensorflow 动态获取 BatchSzie 的大小实例
2020/06/30 Python
巴西最大的玩具连锁店:Ri Happy
2020/06/17 全球购物
应届毕业生自我鉴定范文
2013/12/27 职场文书
主持稿开场白
2015/06/01 职场文书
教学反思怎么写
2016/02/24 职场文书
springboot如何接收application/x-www-form-urlencoded类型的请求
2021/11/02 Java/Android
Win11远程连接不上怎么办?Win11远程桌面用不了的解决方法
2022/08/05 数码科技