2013-10-04 35 views
-1

工作,這是我的JS代碼..我的JS代碼將無法在IE10

<script> 
var sticky = document.querySelector('.sticky'); 
var origOffsetY = sticky.offsetTop; 

function onScroll(e) { 
window.scrollY >= origOffsetY ? sticky.classList.add('fixed') : 
           sticky.classList.remove('fixed'); 
} 

document.addEventListener('scroll', onScroll); 

</script> 

它用來讓一個div保持就位,甚至當用戶向下滾動。

它不會在IE10工作(其中有querySelectorclassListaddEventListener,所以它不是)。

+0

它是如何「不工作」?你在IE10開發工具中看到了哪些錯誤? –

+0

不工作?優雅失敗沒有錯誤? – Jianhong

+0

它沒有工作,因爲它應該做的功能將無法正常工作...當我嘗試使用Firefox瀏覽網站時... div將保持固定,但當它在IE上時.....它剛剛贏得't work – missmisunderstood

回答

2

IE10不支持scrollY。你必須使用scrollTopdocument.documentElement

var sticky = document.querySelector('.sticky'); 
var origOffsetY = sticky.offsetTop; 
var hasScrollY = 'scrollY' in window; 

function onScroll(e) { 
    var y = hasScrollY ? window.scrollY : document.documentElement.scrollTop; 
    y >= origOffsetY ? sticky.classList.add('fixed') : sticky.classList.remove('fixed'); 
} 

document.addEventListener('scroll', onScroll); 

Live Example | Live Source

(您可能不需要檢查,有可能所有的目標瀏覽器支持document.documentElement.scrollTop,你可以只始終使用。)

+2

我如何到達那裏:基本調試。由於很難瀏覽滾動事件處理程序的代碼,因此我只記錄了相關的內容,直到IE10發現'window.scrollY'總是'undefined'。 –

+0

這個工作就像魅力!非常感謝!!! – missmisunderstood