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



我有一个固定的标题,如果向下滚动,它会向上动画化(按标题的高度),当向上滚动时会重新出现。

我以前在IE中遇到过标题跳转问题,我使用了这个:

//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);
    });
}

它在每次滚动时都显示了Object doesn't support property or method 'preventDefault'的JS错误,但它在某种程度上是有效的。

但现在有了新的Edge,即使这样也不起作用(我尝试了/Edge/12./)。Firefox和Chrome的一切都很好用。

您正试图从event调用.preventDefault,但event不在处理程序的参数列表中。因此,event要么在此范围之外定义,要么未定义。不管怎样,这都不是你所期望的。

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

Microsoft Edge的功能应该像Chrome和Firefox一样。如果不是,请将我引导到显示该问题的资源,我很乐意提交一个bug供团队评估。

相关内容

  • 没有找到相关文章

最新更新