以下是如何实现您自己的车轮停止事件。

//initialise the new variables

var wheelMap = new Map;

var deltaXEnded = false;

var deltaYEnded = false;

var previousSwipe = Object;

previousSwipe.timeStamp = 0;

previousSwipe.deltaX = 0;

previousSwipe.deltaY = 0;

var wheelstart = false;

为创建新的事件侦听器

车轮止动器

事件

我们将从

NormalWheelEventCallbackFunction()。

var wheelstop = new Event("wheelstop");

接下来,我们将在调度此事件的情况下定义回调,然后将事件添加到窗口对象。

function wheelstopcallback(event){

wheelstart = false;

console.log("wheel event has ended");

}

window.addEventListener("wheelstop", wheelstopcallback.bind(this));

现在我们定义了普通的车轮事件监听器以及这个监听器将使用的回调…

window.addEventListener("wheel", normalWheelEventCallbackFunction.bind(this));

车轮事件回调函数

function normalWheelEventCallbackFunction(event){

if(previousSwipe.timeStamp !== 0){

if(event.timeStamp - previousSwipe.timeStamp < 1000)

wheelMap.set(event.timeStamp, event);

else

wheelMap.clear();

}

else{previousSwipe.timeStamp = event.timeStamp;}

if(event.deltaX > 2 && event.deltaX > previousSwipe.deltaX){

//forward

wheelstart = true

}

else if(event.deltaX < -2&& event.deltaX < previousSwipe.deltaX){

//backward

wheelstart = true;

}

else if(event.deltaY > 2 && event.deltaY > previousSwipe.deltaY){

wheelstart = true;

}

else if(event.deltaY < 2 && event.deltaY < previousSwipe.deltaY){

wheelstart = true;

}

if(

((event.deltaX === 1 || event.deltaX === 0 || event.deltaX === -1) && ((event.deltaX > 0 && event.deltaX < previousSwipe.deltaX) || (event.deltaX < 0 && event.deltaX > previousSwipe.deltaX)) && wheelstart)

|| (wheelstart && (event.deltaX === 0 && previousSwipe.deltaX === 0))

)

{

deltaXEnded = true;

console.log("deltaXEnded");

}

if(

(((event.deltaY === 1 || event.deltaY === 0 || event.deltaY === -1) && ((event.deltaY > 0 && event.deltaY < previousSwipe.deltaY) || (event.deltaY < 0 && event.deltaY > previousSwipe.deltaY))) && wheelstart)

|| (wheelstart && (event.deltaY === 0 && previousSwipe.deltaY === 0))) {

deltaYEnded = true;

console.log("deltaYEnded");

}

if(deltaXEnded && deltaYEnded){

deltaXEnded = false;

deltaYEnded = false;

window.dispatchEvent(wheelstop);

}

previousSwipe.deltaX = event.deltaX;

previousSwipe.deltaY = event.deltaY;

}

这可能有一些错误,但在大多数情况下,逻辑是相当合理的,我建议您回退,但是如果您需要捕获每一个发送的单轮事件,因为它可能在发送“车轮停止”事件后有一些。

最后,确保并实现一个处理程序,如果它被click事件中断,从而结束wheel事件…

function wheelstopdispatch(){

if(wheelstart)

window.dispatchEvent(wheelstop);

}

window.addEventListener("click", wheelstopdispatch);

mousewheel 取消_jquery mousewheel:检测车轮何时停止?相关推荐

  1. mousewheel 取消_浅谈Mousewheel 事件的用法

    当需要制作转动鼠标滚轮放大页面字体这样的交互效果时,会用到Mousewheel事件.其实在大多数浏览器(IE6, IE7, IE8, Opera 10+, Safari 5+)中,都提供了 " ...

  2. 取消蓝牙耳机入耳检测的终极解决方法

    取消蓝牙耳机入耳检测的终极解决方法,安卓苹果都通用. airpod蓝牙耳机啥都好,就是入耳检测这个功能太烦人,非常容易断开连接,来回断连让人头疼,我这整理了取消这个共功能的解决方案,高仿的耳机也通用哟 ...

  3. mousewheel 取消_如何暂时取消绑定jquery.mousewheel

    我正在制作一个基于同位素的页面.主显示屏水平滚动,我使用 jquery.mousehweel script进行默认的鼠标滚轮操作.我想在打开文章时将默认操作返回给用户,并阻止它水平滚动,但我无法弄清楚 ...

  4. mousewheel 取消_对话框不接收WM_MOUSEWHEEL消息,咋办?

    下面的信息来自http://support.microsoft.com/kb/237998 对话框上旋转鼠标滚轮时, 不会处理程序中 WM_MOUSEWHEEL 中的邮件对话框类不调用运行 Windo ...

  5. 计算机开机跳过硬盘检查,怎么取消开机自动检测硬盘磁盘检查,开机老是修复分区怎么办及原因...

    电脑使用长了,经常会出现各种问题,特别是正常关机情况下,系统每次开机时居然会自动检测硬盘,笔记本老是开机自检硬盘,就是扫描每一个分区检测错误,非常耽误时间,于是就想把自检硬盘关了,虽然想关了,但完全不 ...

  6. Unity3D射线检测墙面前停止移动

    功能: 计算角色/怪物走到目标,如果有墙就再墙前停止,防止一直怼墙走现象. 思路: 1. θ角 = 入射线(self - target) 与 法线(raycastHit.normal) 的夹角度(V3 ...

  7. 52单片机与MH-Sensor-Series模块使用简单检测车轮转速

    mh sensor series模块有四个口,VCC接5V,GND接地,还有A0与D0分别是模拟量与数字量的输出. 和单片机使用,就只用D0口即可. 使用单片机的外部中断进行引脚检测.可以选择P3^2 ...

  8. win10怎么取消开机磁盘检测

    win10操作系统每次开机都会弹出下图所示"磁盘检测"界面,需要手动点击才会跳过,该怎么关闭呢? 1.在开始菜单按钮上单击右键点击[运行](快捷键win+r),在运行框中输入reg ...

  9. 如何取消Eslint的检测机制

    1.出现下图这种问题,不要慌- 2.只需要在你的vue.config.js文件里面加入一行代码即可解决- lintOnSave:false, 3.重新运行一下- npm run serve 4.问题解 ...

最新文章

  1. python如何读取excel数据-使用Python读取电子表格中的数据
  2. 【数据挖掘笔记十二】离群点检测
  3. Python语法中的模糊语义,你知道吗?
  4. 征战蓝桥 —— 2017年第八届 —— C/C++A组第10题——油漆面积
  5. (转)40种网站设置技巧
  6. 静态链接库与动态链接库
  7. mysql查询case when_【原创】关于MySQL高级查询–case when
  8. HTML accesskey 属性
  9. Redis(二):Redis入门与性能测试
  10. 分子动力学模拟-gromacs的基本使用
  11. 一款QQ全自动签到的辅助工具
  12. CRM客户管理系统源码,基于ThinkPHP开发
  13. win7所有服务被禁用(应该是大多数被禁用)
  14. python设置文件权限_python通用权限框架
  15. 谷歌“隐私沙盒”引争议,广告业务与用户隐私难平衡?
  16. 洛谷:尼克的任务【记忆化搜索】【记忆化搜索的使用条件】
  17. Dimensionality Reduction
  18. 本地图片转为网络链接(URL/HTML/Markdown/BBCode...)
  19. 彭博社:Web3 巨大潜力之下的未解之谜
  20. 【黑金原创教程】【Modelsim】【第六章】结束就是开始

热门文章

  1. 周五上海火车站买票游记 绝对真实
  2. tarjan模板---求解有向图强连通分量
  3. 2000万用户,理财通将逆袭余额宝?
  4. 国内手机号码归属地查询---Nusoap学习笔记(三)
  5. mysql 夏令时_php – MySQL datetime字段和夏令时 – 如何参考“额外”小时?
  6. android仿京东商城例子
  7. Android模拟登陆带验证码的网站客户端
  8. 转载的一道小米面试题和自己的写法
  9. Zigbee的CC2530与烟雾传感器
  10. 第九届信安技能赛BATV提供20万奖学金,助力i春秋大学生成长计划