scrolltop()没有'我根本不在IE9工作

scrolltop() doesn't work in IE9 at all

本文关键字:工作 IE9 没有 scrolltop      更新时间:2023-09-26

http://jsfiddle.net/QF47A/7/

function onscroll(){
    document.getElementById("fly").style.top=""+ $(document).scrollTop() * 5 +"px";
}

看看叹息

在IE9中一点也不起作用…还没有在IE10中进行测试。但是的,它适用于Chrome、Firefox,几乎所有的浏览器,除了该死的IE。

改为侦听windowscroll事件:

$(window).on('scroll', function() {
    document.getElementById("fly").style.top = $(document).scrollTop() * 5 +"px";
});

演示


在最新的Chrome、Firefox、Opera 15和IE8中进行了测试。似乎在任何浏览器中都能正常工作,主要问题是IE不像其他浏览器那样将bodyonscroll属性解析为window.onscroll属性。实时测试用例。测试用例来源:

<body onscroll="42;">

document.body.innerHTML = 'Does ' + (window.onscroll ? '' : '<b>not</b> ') + 
    'parse body onscroll attribute to window.onscroll';

因此,将事件处理程序直接分配给window.onscroll也可以解决这个问题,但由于您使用的是jQuery,因此.on()方法更适合用于事件绑定。它修补了跨浏览器的不一致性,您不必担心覆盖预先存在的处理程序。