vue2.0 v-tap简洁(漏)版 (只解决300ms问题)
2024-09-29 02:39:53
Vue.directive('tap',{
bind:function(el,binding){
var startTx, startTy, endTx, endTy, startTime, endTime; el.addEventListener("touchstart",function(e){
var touch=e.touches[0];
startTx = touch.clientX;
startTy = touch.clientY;
startTime = +new Date()
},false ); el.addEventListener("touchend",function(e){
endTime = +new Date()
if (endTime - startTime > 300) {
// 若点击事件过长,不执行回调
return
}
var touch = e.changedTouches[0];
endTx = touch.clientX;
endTy = touch.clientY;
if( Math.abs(startTx - endTx) < 6 && Math.abs(startTy - endTy) < 6){
// 若点击期间手机移动距离过长,不执行回调
var method = binding.value.method;
var params = binding.value.params;
method(params);
}
},false);
}
})
使用方法:在创建Vue实例前引入,栗子:
<div id="test" v-tap="{method:test,params:some}"> var vm= new Vue({
el:"#test",
data:{
some:"ok!"
},
method:{
test:function(ee){
console.log(ee)
}
}
})
最新文章
- IIS6.0 IIS7.5应用程序池自动停止的解决方法
- 【体系结构】Oracle参数介绍
- RSA
- Oracle触发器使用介绍
- Javascript中最常用的61段经典代码
- Android图表
- MySQL 5.7 reference about JSON
- 用消息在Win32控制台程序多线程间进行通讯
- Cocos2d-x:环境配置小节
- msys2 安装注意事项
- JDK8 BigDecimal API-创建BigDecimal源码浅析二
- fflush 和 fsync 的区别
- C语言权威指南和书单 - 适用于所有级别
- mysql之找回误删数据
- Python3.6下使用会话session保持登陆状态
- centos-ftp搭建
- centos 7 redis-4.0.11 主从
- mydqldump
- python第九课——while死循环
- 智能家居入门DIY——【五、执行命令】