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 DOM学习第一章 W3C DOM简介
Feb 19 Javascript
extjs3 combobox取value和text案例详解
Feb 06 Javascript
浅析用prototype定义自己的方法
Nov 14 Javascript
javascript 原型链维护和继承详解
Nov 26 Javascript
Js控制滑轮左右滑动实例
Feb 13 Javascript
高效Web开发的10个jQuery代码片段
Jul 22 Javascript
js实现简单的二级联动效果
Mar 09 Javascript
linux 后台运行node服务指令方法
May 23 Javascript
Vue中的组件及路由使用实例代码详解
May 22 Javascript
在Vue环境下利用worker运行interval计时器的步骤
Aug 01 Javascript
浅谈微信小程序列表埋点曝光指南
Oct 15 Javascript
Vue+scss白天和夜间模式切换功能的实现方法
Jan 05 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中检查文件或目录是否存在的代码小结
2012/10/22 PHP
php网站判断用户是否是手机访问的方法
2013/11/01 PHP
php在apache环境下实现gzip配置方法
2015/04/02 PHP
php返回当前日期或者指定日期是周几
2015/05/21 PHP
javascript中强制执行toString()具体实现
2013/04/27 Javascript
jquery教程ajax请求json数据示例
2014/01/13 Javascript
jQuery源码分析之jQuery.fn.each与jQuery.each用法
2015/01/23 Javascript
jQuery延迟加载图片插件Lazy Load使用指南
2015/03/25 Javascript
jQuery插件multiScroll实现全屏鼠标滚动切换页面特效
2015/04/12 Javascript
基于OL2实现百度地图ABCD marker的效果
2015/10/01 Javascript
JS中常用的输出方式(五种)
2016/06/12 Javascript
js对象浅拷贝和深拷贝详解
2016/09/05 Javascript
详解从新建vue项目到引入组件Element的方法
2017/08/29 Javascript
微信小程序 input输入及动态设置按钮的实现
2017/10/27 Javascript
关于vue单文件中引用路径的处理方法
2018/01/08 Javascript
原生js实现移动端Touch轮播图的方法步骤
2019/01/03 Javascript
js如何实现元素曝光上报
2019/08/07 Javascript
layui点击数据表格添加或删除一行的例子
2019/09/12 Javascript
详解Vite的新体验
2021/02/22 Javascript
[51:30]OG vs LGD 2018国际邀请赛淘汰赛BO3 第二场 8.26
2018/08/30 DOTA
[00:10]神之谴戒
2019/03/06 DOTA
Python3.5编程实现修改IIS WEB.CONFIG的方法示例
2017/08/18 Python
Python基础语言学习笔记总结(精华)
2017/11/14 Python
django admin添加数据自动记录user到表中的实现方法
2018/01/05 Python
djang常用查询SQL语句的使用代码
2019/02/15 Python
Python函数中参数是传递值还是引用详解
2019/07/02 Python
M1芯片安装python3.9.1的实现
2021/02/02 Python
Skyscanner加拿大:全球旅行搜索平台
2018/11/19 全球购物
雷蛇美国官网:Razer
2020/04/03 全球购物
学生学习总结的自我评价
2013/10/22 职场文书
2014超市双十一活动策划方案
2014/09/29 职场文书
学生上课迟到检讨书
2015/01/01 职场文书
企业开业庆典答谢词
2015/01/20 职场文书
写给医生的感谢信
2015/01/22 职场文书
作文之亲情600字
2019/09/23 职场文书
浅谈css清除浮动(clearfix和clear)的用法
2023/05/21 HTML / CSS