我的js代码不适用于IE10

时间:2013-10-04 06:45:34

标签: javascript internet-explorer-10

这是我的JS代码..

 <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时不起作用,所以不是这样。)

1 个答案:

答案 0 :(得分:2)

IE10不支持scrollY。您必须在scrollTop上使用document.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,您可以随时使用它。)

相关问题