javascript - scrollLeft 在 Internet Explorer 中不起作用

标签 javascript html scroll

我试图让滚轮水平滚动页面。就像 Windows 8 Metro 界面和新的 myspace 网站。

我无法让它在 Internet Explorer (10) 中工作。我的 JSFiddle :http://jsfiddle.net/88dRJ/4/

我已经尝试删除溢出以使滚动条可见。微软在 doScroll 文档中声明它不适用于隐藏滚动条。我更喜欢隐藏的滚动条。

Javascript

var mouseWheelEvt = function (e) {
    var event = e || window.event;
    if (document.body.doScroll) {
        document.body.doScroll(event.wheelDelta > 0 ? "left" : "right");
    } else if ((event.wheelDelta || event.detail) > 0) {
        document.body.scrollLeft -= event.wheelDelta || 120;
    } else {
        document.body.scrollLeft -= event.wheelDelta || -120;
    }
    return false;
};
document.addEventListener("mousewheel", mouseWheelEvt);
document.addEventListener("DOMMouseScroll", mouseWheelEvt);

编辑:澄清一下,我更喜欢没有 jquery 或其他库的解决方案。

最佳答案

对于 IE,您需要使用 document.documentElement 而不是 document.body 来访问/修改 scrollLeftscrollTop

document.documentElement.scrollLeft -= event.wheelDelta || 120;

关于javascript - scrollLeft 在 Internet Explorer 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14898742/

相关文章:

javascript - 使用 javascript 将类添加到 html 元素

javascript - 如何使用 SpyOnEvent 通过 jquery-jasmine 监视事件

javascript - 在 iframe 中显示 pdf 在 iPad 中无法正常工作

c# - 如何在.NET中实现平滑滚动

javascript - 如何在正确的工厂 AngularJS 上编写

php - 性能方面的 : request JSON and render in JS, 还是请求整个 HTML?

HTML Viber 链接到特定号码

javascript - 在AngularJS中禁用严格的上下文转义($ sce)不适用于流音频

javascript - 填充动态div的字体大小

javascript将div滚动到 View 中并具有平滑的滚动效果?