1

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

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

看看那个...叹息

在 IE9 中无法工作...尚未在 IE10 中进行测试。但是,是的,它可以在 Chrome、Firefox 和几乎所有的浏览器中运行,除了该死的 IE。

4

1 回答 1

3

改为收听window'scroll事件:

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

演示


在最新的 Chrome、Firefox、Opera 15 和 IE8 中测试。似乎在任何浏览器中都可以正常工作,主要问题是 IE 不像其他浏览器那样将body'onscroll属性解析为属性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()方法是事件绑定的首选。它修补了跨浏览器的不一致性,您不必担心覆盖预先存在的处理程序。

于 2013-07-22T00:11:38.800 回答