1

http://jsfiddle.net/QF47A/7/scrolltop() не работает в IE9 на всех

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

проверить, что из ... Вздох

Не работает один бит в IE9 ... Не проверял в IE10. Но да, это работает в Chrome, Firefox и почти в каждом браузере под солнцем, кроме проклятого IE.

+1

Я не сбил вас, но если вы уже используете jQuery, зачем использовать 'document.getElementById'? – Dom

+2

@Mathletics C'mon, его вопрос довольно очевиден из проблемы, которую он изложил. Он не работает в IE9, и он хотел бы этого - он предоставил свой собственный код и скрипки. Не нужно быть педантичным. –

+1

Мех, спасибо @KyleMuir :) Я ненавижу малодушных людей ага – seanlevan

ответ

3

Слушайте window «s scroll события вместо:

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

Demo


Испытан в последнем Chrome, Firefox, Opera 15 и IE8. Кажется, что он работает нормально в любом браузере, основная проблема заключается в том, что IE не анализирует атрибут bodyonscroll для свойства 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 является предпочтительным для связывания событий. Он исправляет кросс-браузерные несоответствия, и вам не нужно беспокоиться о перезаписывании ранее существующих обработчиков.

Смежные вопросы