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中setTimeout()的用法详解
Apr 14 Javascript
Extjs NumberField后面加单位实现思路
Jul 30 Javascript
深入理解JavaScript系列(21):S.O.L.I.D五大原则之接口隔离原则ISP详解
Mar 05 Javascript
clipboard.js无需Flash无需依赖任何JS库实现文本复制与剪切
Oct 10 Javascript
详解js中构造流程图的核心技术JsPlumb(2)
Dec 08 Javascript
JavaScript学习小结之使用canvas画“哆啦A梦”时钟
Jul 24 Javascript
使用jquery如何获取时间
Oct 13 Javascript
Bootstrap CSS组件之大屏幕展播
Dec 17 Javascript
Vue.js实例方法之生命周期详解
Jul 03 Javascript
vue element-ui之怎么封装一个自己的组件的详解
May 20 Javascript
Vue实现按钮级权限方案
Nov 21 Javascript
JavaScript 面向对象程序设计详解【类的创建、实例对象、构造函数、原型等】
May 12 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
先进的自动咖啡技术,真的可以取代咖啡师吗?
2021/03/06 冲泡冲煮
详解:――如何将图片储存在数据库里
2006/12/05 PHP
php中explode的负数limit用法分析
2015/02/27 PHP
yii2 页面底部加载css和js的技巧
2016/04/21 PHP
js css样式操作代码(批量操作)
2009/10/09 Javascript
javascript 学习笔记(六)浏览器类型及版本信息检测代码
2011/04/08 Javascript
Jquery AJAX POST与GET之间的区别
2013/11/14 Javascript
推荐一个封装好的getElementsByClassName方法
2014/12/02 Javascript
js立即执行函数: (function ( ){})( ) 与 (function ( ){}( )) 有什么区别?
2015/11/18 Javascript
jQuery on()方法绑定动态元素的点击事件无响应的解决办法
2016/07/07 Javascript
浅谈JS中的!=、== 、!==、===的用法和区别
2016/09/24 Javascript
最常见的左侧分类菜单栏jQuery实现代码
2016/11/28 Javascript
详解AngularJS controller调用factory
2017/05/19 Javascript
关于JavaScript语句后面的分号问题
2017/12/07 Javascript
基于node打包可执行文件工具_Pkg使用心得分享
2018/01/24 Javascript
react native基于FlatList下拉刷新上拉加载实现代码示例
2018/09/30 Javascript
vue-cli设置publicPath小记
2020/04/14 Javascript
在vue中实现禁止屏幕滚动,禁止屏幕滑动
2020/07/22 Javascript
[14:25]教你分分钟做大人:主宰(HEROS)
2014/12/08 DOTA
python文件写入实例分析
2015/04/08 Python
Python正则表达式使用经典实例
2016/06/21 Python
如何利用Python开发一个简单的猜数字游戏
2019/09/22 Python
python游戏开发的五个案例分享
2020/03/09 Python
基于tensorflow for循环 while循环案例
2020/06/30 Python
python中Django文件上传方法详解
2020/08/05 Python
python3让print输出不换行的方法
2020/08/24 Python
香港卓悦化妆品官网:BONJOUR
2017/09/21 全球购物
英国领先的独立酒精饮料零售商:DrinkSupermarket
2021/01/13 全球购物
金融专业应届生求职信
2013/11/02 职场文书
房地产销售大学生自我评价分享
2013/11/11 职场文书
大学生旷课检讨书
2014/01/22 职场文书
教师师德演讲稿
2014/05/06 职场文书
运动会入场口号
2014/06/07 职场文书
python开发的自动化运维工具ansible详解
2021/08/07 Python
MySQL创建管理子分区
2022/04/13 MySQL
Mysql查询时间区间日期列表,不会由于数据表数据影响
2022/04/19 MySQL