【问题标题】:Detect Glide Pad "Smooth Scroll"检测滑动垫“平滑滚动”
【发布时间】:2014-06-25 07:25:05
【问题描述】:

我正在开发一个网站,当用户使用鼠标滚轮(或滑动垫)向下滚动时,该网站会自动使用 jquery animate 向下滚动到下一个元素。

问题在于,当使用 Mac 或任何其他“平滑滚动”的设备时,如果用户在滑动垫上向下滑动的速度过快,动画结束后,它会再次被调用。

这样做的原因是,当您使用“平滑滚动”的滑动垫滚动时,它不会简单地将 delta (- 40) 传递给站点,而是会传递一大堆通常开始高的 delta,例如 - 100 并在滚动结束时下降到 -1 以给用户一个平滑的滚动完成,就好像页面在冰上并且它正在慢慢恢复摩擦。

起初我尝试将站点限制为仅在 delta 大于 -50 或 50 时才滚动,这在使用“平滑滚动”的设备上效果很好,但对于那些不使用的设备,该函数永远不会被调用,因为只有鼠标发送大约 delta 10。

我的代码设置如下:

if (delta < 0) {
    //SCROLL DOWN
    scrollDown();
} else if (delta > 0) {
    //SCROLL UP
    scrollUp();
}

在有人说你不应该劫持按键或鼠标的正常使用之前,谷歌也这样做了,他们和我有同样的问题。我只是想让它变得完美。谢谢!

http://www.google.com/glass/start/

【问题讨论】:

  • 是的,我以前在网站上看到过这种效果。我认为这是一种糟糕的用户体验。
  • 是的,这真的取决于它的使用方式。我还有一个关闭功能。

标签: javascript jquery scroll


【解决方案1】:

对于遇到这种情况的人,我决定走另一条路。

这太依赖硬件了,据我所知,无法判断。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-20
    • 2017-01-16
    • 1970-01-01
    相关资源
    最近更新 更多