如何在 IE11 中禁用平滑滚动
How to disable smooth scrolling in IE11
IE 的平滑滚动导致我的应用程序行为异常(滚动事件触发时有一小段延迟)。
有没有办法使用 CSS 或 Javascript 在 IE11 中完全禁用平滑滚动?
IE 的平滑滚动功能已为所有 windows 8 名 IE11 用户打开。
您可以通过转到 Internet 选项、高级并取消选中使用平滑滚动来禁用它。它解决了这个问题。但是您网站的所有用户都不会这样做。所以我强烈建议你不要禁用它。尝试在您的用户将使用的 machines/browsers 上进行开发。否则,您将与您网站的用户产生不一致。出于同样的原因,我还建议永远不要更改默认浏览器设置。
这是 JS 修复。
Fiddle
if(navigator.userAgent.match(/Trident\/7\./)) {
$('body').on("mousewheel", function (event) {
event.preventDefault();
var wd = event.wheelDelta;
var csp = window.pageYOffset;
window.scrollTo(0, csp - wd);
});
}
此代码将处理每种滚动类型(鼠标和键盘(PageUP、PageDOWN、Up、Down)):
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);
});
$('body').keydown(function (e) {
var currentScrollPosition = window.pageYOffset;
switch (e.which) {
case 33: // page up
e.preventDefault(); // prevent the default action (scroll / move caret)
window.scrollTo(0, currentScrollPosition - 600);
break;
case 34: // page down
e.preventDefault(); // prevent the default action (scroll / move caret)
window.scrollTo(0, currentScrollPosition + 600);
break;
case 38: // up
e.preventDefault(); // prevent the default action (scroll / move caret)
window.scrollTo(0, currentScrollPosition - 120);
break;
case 40: // down
e.preventDefault(); // prevent the default action (scroll / move caret)
window.scrollTo(0, currentScrollPosition + 120);
break;
default: return; // exit this handler for other keys
}
});
}
IE 的平滑滚动导致我的应用程序行为异常(滚动事件触发时有一小段延迟)。
有没有办法使用 CSS 或 Javascript 在 IE11 中完全禁用平滑滚动?
IE 的平滑滚动功能已为所有 windows 8 名 IE11 用户打开。
您可以通过转到 Internet 选项、高级并取消选中使用平滑滚动来禁用它。它解决了这个问题。但是您网站的所有用户都不会这样做。所以我强烈建议你不要禁用它。尝试在您的用户将使用的 machines/browsers 上进行开发。否则,您将与您网站的用户产生不一致。出于同样的原因,我还建议永远不要更改默认浏览器设置。
这是 JS 修复。
Fiddle
if(navigator.userAgent.match(/Trident\/7\./)) {
$('body').on("mousewheel", function (event) {
event.preventDefault();
var wd = event.wheelDelta;
var csp = window.pageYOffset;
window.scrollTo(0, csp - wd);
});
}
此代码将处理每种滚动类型(鼠标和键盘(PageUP、PageDOWN、Up、Down)):
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);
});
$('body').keydown(function (e) {
var currentScrollPosition = window.pageYOffset;
switch (e.which) {
case 33: // page up
e.preventDefault(); // prevent the default action (scroll / move caret)
window.scrollTo(0, currentScrollPosition - 600);
break;
case 34: // page down
e.preventDefault(); // prevent the default action (scroll / move caret)
window.scrollTo(0, currentScrollPosition + 600);
break;
case 38: // up
e.preventDefault(); // prevent the default action (scroll / move caret)
window.scrollTo(0, currentScrollPosition - 120);
break;
case 40: // down
e.preventDefault(); // prevent the default action (scroll / move caret)
window.scrollTo(0, currentScrollPosition + 120);
break;
default: return; // exit this handler for other keys
}
});
}