Слушайте window
«s scroll
события вместо:
$(window).on('scroll', function() {
document.getElementById("fly").style.top = $(document).scrollTop() * 5 +"px";
});
Demo
Испытан в последнем Chrome, Firefox, Opera 15 и IE8. Кажется, что он работает нормально в любом браузере, основная проблема заключается в том, что IE не анализирует атрибут body
onscroll
для свойства window.onscroll
, как это делают другие браузеры. Live Test Case. Источник случай испытания:
<body onscroll="42;">
document.body.innerHTML = 'Does ' + (window.onscroll ? '' : '<b>not</b> ') +
'parse body onscroll attribute to window.onscroll';
Так назначение обработчика события непосредственно window.onscroll
бы также решить эту проблему, но, как вы используете JQuery .on()
method является предпочтительным для связывания событий. Он исправляет кросс-браузерные несоответствия, и вам не нужно беспокоиться о перезаписывании ранее существующих обработчиков.
Я не сбил вас, но если вы уже используете jQuery, зачем использовать 'document.getElementById'? – Dom
@Mathletics C'mon, его вопрос довольно очевиден из проблемы, которую он изложил. Он не работает в IE9, и он хотел бы этого - он предоставил свой собственный код и скрипки. Не нужно быть педантичным. –
Мех, спасибо @KyleMuir :) Я ненавижу малодушных людей ага – seanlevan