2

スクロールホイールでページを水平にスクロールさせようとしています。Windows 8 のメトロ インターフェイスと新しい myspace Web サイトのように。

Internet Explorer(10)で動作させることができません。私の JSFiddle : http://jsfiddle.net/88dRJ/4/

オーバーフローを削除して、スクロールバーを表示しようとしました。Microsoft は、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 やその他のライブラリを使用しないソリューションをお勧めします。

4

1 に答える 1

2

IEの場合、アクセス/変更または変更するdocument.documentElement代わりに使用する必要がありますdocument.bodyscrollLeftscrollTop

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

于 2013-02-15T16:33:06.193 に答える