2013-02-15 146 views
2

我正在嘗試使滾輪滾動頁面水平。像Windows 8 metro界面和新的myspace網站。scrollLeft在Internet Explorer中不工作

我只是不能得到它在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或其他libaries的解決方案。

+0

您是否已經嘗試過'document.documentElement.scrollLeft - ='for IE? – 2013-02-15 16:26:51

+0

Woow非常感謝,確實是這個問題。所以很奇怪,我不認爲IE10也不支持document.body.scrollLeft(你可以讓它成爲答案) – automaticoo 2013-02-15 16:31:30

+0

你可以檢查這段代碼,如果它在IE中工作http://jsfiddle.net/88dRJ/8/ is是的,我會將它包含在答案中。我沒有IE瀏覽器,所以我不能測試自己 – 2013-02-15 16:35:41

回答

2

IE瀏覽器,你需要使用document.documentElement而不是document.body訪問/修改scrollLeftscrollTop

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

+0

我只是調整它們以獲得跨瀏覽器滾動。在鉻和ie10工作 – automaticoo 2013-02-15 16:37:14

+2

@automaticoo我不會同時調整。因爲如果例如MS認爲它應該支持在IE瀏覽器的時間,你會得到一個「雙」滾動距離。 – 2013-02-15 16:38:43

相關問題