IE 和 Edge 的问题,可能是滚动平滑

Problems with IE and Edge, probably scroll smoothing

我已经修复了 header 如果向下滚动并在向上滚动时重新出现的动画效果(按 header 的高度)。

我在使用 IE 之前遇到了 header 跳转问题,我使用了这个:

//IE jumping fixed elements fix
if(navigator.userAgent.match(/Trident\/7\./)) { // if IE
    $('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);
    });
}

它显示 JS 错误 Object doesn't support property or method 'preventDefault' 每次滚动但它以某种方式工作。

但现在有了新的 Edge,即使这样也行不通(我试过 /Edge\/12./)。一切都与 Firefox 和 Chrome.

配合得很好

您正在尝试从 event 调用 .preventDefault,但 event 不在您的处理程序的参数列表中。因此,event 要么在此范围之外定义,要么 undefined。无论哪种方式,这都不是您所期望的。

另一个建议(特别是对于旧版本的 IE 和旧硬件)是限制此方法,使其不会每秒 运行 数十次。

Microsoft Edge 应该像 Chrome 和 Firefox 一样运行。如果不是,请将我指向显示问题的资源,我很乐意提交错误供团队评估。