检查用户是否使用触控板滚动?

Cod*_*ody 11 jquery scroll trackpad

我创建了一个网站,用户可以使用鼠标滚动或向上/向下箭头滚动浏览图库.它像我想要的那样工作,并且当用鼠标滚动时改变一个图像pr滚动.但是如果用户使用触控板滚动,则几乎不可能一次滚动单个图像.

所以我的问题是:有没有办法检查用户是否通过触控板滚动,然后更改滚动的行为,因此它变得不那么敏感,从而更容易一次滚动单个图像?

我不是很擅长jquery,到目前为止,我的解决方案已经从几个脚本中组合在一起:

http://jsfiddle.net/MukuMedia/PFjzX/33/

希望可以有人帮帮我 :)

Yoa*_*nnM 6

我发现这里的幻数是40.

看起来,使用触控板(可能还有魔术鼠标),delta增加了40倍.

即使您取回普通鼠标并稍后滚动它也会保持这种状态.

所以我做了,使用jquery鼠标滚轮插件:

b.mousewheel(function(evt,delta,deltaX,deltaY){
    if(Math.abs(deltaY)>=40)
        deltaY/=40;
    if(Math.abs(deltaX)>=40)
        deltaX/=40;

    //Do your stuff here.
});
Run Code Online (Sandbox Code Playgroud)


DC_*_*DC_ 5

不,这是不可能的。我能想到的唯一解决方案是对滚动速度设置限制。我不会尝试破译您的代码,但我建议将timedOut变量初始化为零,每次滚动到新图像时将其设置为 1。setTimeout()例如,50 毫秒后,使用 a将其设置回零。在滚动到新图像之前,请检查此timedOut变量,并且仅在其为零时才滚动。(确保你把你的检查放在setTimeout里面timedOut,否则每次鼠标滚轮移动时它都会被不断地调用,这不是你想要的。)