博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
插件-鼠标或手指滑动事件
阅读量:6819 次
发布时间:2019-06-26

本文共 3411 字,大约阅读时间需要 11 分钟。

前端页面经常用到滑动事件,即判断是动作左滑、右滑、上滑或者下滑,然后根据事件类型完成不同的功能,最常见的就是H5的翻页,如果需要的事件很简单,就是判断一下滑动方向然后执行回调函数,那么如果引用较大的插件将会十分影响页面的加载速度。

下面就分享一个简单的滑动事件的插件,轻量好用。

看效果页面请点

网址:

直接贴代码

var TouchTool = function(param) {    var self = this;    this.dh = document.documentElement.clientHeight;    this.direction = param.direction || 'vertical';    this.device = /android|iphone|ipad|ipod|webos|iemobile|opear mini|linux/i.test(navigator.userAgent.toLowerCase());    this.sx = this.sy = this.ex = this.ey = this.mx = this.my = this.speedx = this.speedy = this.st = this.et = 0;    this.obj = param.obj;    this.len = this.obj.length;    this.startEvtName = this.device ? "touchstart" : "mousedown";    this.moveEvtName = this.device ? "touchmove" : "mousemove";    this.endEvtName = this.device ? "touchend" : "mouseup";    console.log(this.obj)    this.touchStart = function(e) {        var e = e || event;        self.st = new Date().getTime();        self.sx = self.device ? e.touches[0].clientX : e.clientX;        self.sy = self.device ? e.touches[0].clientY : e.clientY;        self.obj.addEventListener(self.moveEvtName, self.touchMove);        self.obj.addEventListener(self.endEvtName, self.touchEnd);    }    this.touchMove = function(e) {        var e = e || event;        self.ex = self.device ? e.touches[0].clientX : e.clientX;        self.ey = self.device ? e.touches[0].clientY : e.clientY;    }    this.touchEnd = function(e) {        var e = e || event;        self.et = new Date().getTime();        self.obj.removeEventListener(self.moveEvtName, self.touchMove);        self.obj.removeEventListener(self.endEvtName, self.touchEnd);        self.ex = self.ex;        self.ey = self.ey;        self.mx = self.ex - self.sx;        self.my = self.ey - self.sy;        self.speedx = Math.abs(self.mx / (self.et - self.st));        self.speedy = Math.abs(self.my / (self.et - self.st));        if(self.direction == 'horizontal') {            if((self.speedx > 1 || (self.speedx > 0.5 && Math.abs(self.mx) > 250)) && self.mx > 0) {                if(typeof param.slideRight != 'undefined') {                    param.slideRight();                }            };            if((self.speedx > 1 || (self.speedx > 0.5 && Math.abs(self.mx) > 250)) && self.mx < 0) {                if(typeof param.slideLeft != 'undefined') {                    param.slideLeft();                }            };        }        if(self.direction == 'vertical') {            if((self.speedy > 1 || (self.speedy > 0.5 && Math.abs(self.my) > 300)) && self.my > 0) {                if(typeof param.slideDown != 'undefined') {                    param.slideDown();                }            };            if((self.speedy > 1 || (self.speedy > 0.5 && Math.abs(self.my) > 300)) && self.my < 0) {                if(typeof param.slideUp != 'undefined') {                    param.slideUp();                }            }        }    }    this.obj.addEventListener(this.startEvtName, this.touchStart);}

使用方法:

new TouchTool({    'obj': document.getElementById('touchBox'),    'direction': 'vertical', //horizontal水平 vertical垂直    'slideUp': function() {        console.log('u')    },    'slideDown': function() {        console.log('d')    },    'slideLeft': function() {        console.log('l')    },    'slideRight': function() {        console.log('r')    } })

在配置参数里填入要执行的回调函数,就可以使用了,PC端和移动端都适用,很简单有木有

 

(完)

转载于:https://www.cnblogs.com/hanguozhi/p/7403969.html

你可能感兴趣的文章
软件测试英语专业词汇汇总
查看>>
Java实现word文档在线预览,读取office(word,excel,ppt)文件
查看>>
python笔记(五)装饰器函数
查看>>
Permutations II
查看>>
Super Ugly Number
查看>>
(转载)UTF-8和GBK的编码方式的部分知识:重要
查看>>
convert RGB image to a 2x2 [GR;BG] Bayer pattern
查看>>
机器学习 -- 机器学习是什么?
查看>>
三台机器之间ssh互信配置
查看>>
mysql8.0.16二进制安装
查看>>
第一次课后作业
查看>>
ZooKeeper学习第三期---Zookeeper命令操作
查看>>
MFC MDI 窗口函数执行顺序
查看>>
2017ACM/ICPC亚洲区沈阳站-重现赛(感谢东北大学)
查看>>
[代码]ural 1913 Titan Ruins: Old Generators Are Fine Too
查看>>
[转载]C++的顺序点(sequence point)和副作用(side effect)
查看>>
javascript 插入DOM节点
查看>>
【原】npm 常用命令详解
查看>>
Less学习
查看>>
一个在线的C++帮助文档网站 转载
查看>>