捕获滚轮事件以向上/向下更改为向下/向上

时间:2014-09-23 00:55:36

标签: javascript jquery html css

我有一个客户想要更改其网站的功能,以便用户从网站底部开始,并且必须向下滚动才能向上导航。

所以基本上,我需要一种方法来反转滚动功能,这样如果向下滚动,它会向上滚动,反之亦然。

我做了一些研究并找到了这个(How can I determine the direction of a jQuery scroll event?),它给了我下面的内容来捕捉滚动事件:

        var lastScrollTop = 0;
        $(window).scroll(function (event) {
            var st = $(this).scrollTop();
            if (st > lastScrollTop) {
                // downscroll code
                alert("DOWN");
            } else {
                // upscroll code
                alert("UP");
            }
            lastScrollTop = st;
        });

这样可以正常工作,它可以识别用户是向上还是向下滚动。

但我不知道我能做些什么:

  1. 停止默认滚动,
  2. 向另一个方向滚动
  3. 任何人都知道我能在这做什么吗?或者如果使用插件或其他方法完全不同的方法,我可以做任何事情。

1 个答案:

答案 0 :(得分:1)

这里有一个快速的小提琴:

http://jsfiddle.net/fmwpuu9g/

基本上,您希望捕获mousewheel事件(或DOMMouseScroll事件)并阻止默认值。

两者的文件:

MouseWheel:https://developer.mozilla.org/en-US/docs/Web/Events/mousewheel(大多数主流浏览器) DOMMouseScroll:https://developer.mozilla.org/en-US/docs/Web/Events/DOMMouseScroll(FireFox / Gecko)

不幸的是,正如您所看到的,它不是标准",所以支持不是保证......

有一点需要指出的是offset10px。虽然这是硬编码(可能是您的客户正在寻找的),但它并不理想 - 因为您期望惯性。此外,这是使用MacBooK Pro测试的,其中"正常"滚动禁用(向上滚动或向下滚动) - 所以我不确定它如何在增量方面发挥作用。

最后,如果希望删除滚动条,则可以偏移容器的top位置。

祝你好运!