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 一样运行。如果不是,请将我指向显示问题的资源,我很乐意提交错误供团队评估。
我已经修复了 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 一样运行。如果不是,请将我指向显示问题的资源,我很乐意提交错误供团队评估。