在IE11上使用wheelDelta

时间:2016-12-28 15:06:19

标签: javascript internet-explorer scroll parallax microsoft-edge

所以我创建了一个使用视差滚动的页面。视差在Chrome和Firefox上运行顺畅,但在IE上它开始出现口吃。所以我(这意味着谷歌搜索)这个脚本修复它在Edge和IE10上

    if(navigator.userAgent.match(/(?:\b(MS)?IE\s+|\bTrident\/7\.0;.*\s+rv:|\bEdge\/)(\d+)/)) {
        jQuery('body').on("mousewheel", function () {
            // remove default behavior
            event.preventDefault();

            //scroll without smoothing
             var wheelDelta = event.wheelDelta;
             var currentScrollPosition = window.pageYOffset;
             window.scrollTo(0, currentScrollPosition - wheelDelta);
        });
}

但它完全打破了IE11的滚动。 它真的很奇怪,它适用于IE10和边缘但不适用于IE11。

任何人都知道可能解决这个问题的方法是什么?我想addeventlistener会有所帮助,但我没有设法正确实现它。

非常感谢帮助!!

编辑:在EDGE上,缩放也被破坏了。这是不可避免的吗?

1 个答案:

答案 0 :(得分:1)

我有同样的问题,我用事件监听器“轮子”想出了这个,我希望它有所帮助。

      $('#scroll-content').bind("wheel", function(event) {
            scrollAreas[0].handleEvent(event);
        });

我通过jQuery调用它

Array
(
    [0] => Array
        (
            [id] => 1
            [firstName] => "John"
            [lastName] => "Doe"
            [images] => "image1.jpg,image2.jpg,image3.jpg"
        )

)