1

私はトップオフセットをチェックし、それに応じてメニューのクラスを変更するこのコードを持っています。 クラスが変更されていないIE7とIE8を除き、完全に動作します。 これはコードです:addClassとremoveClassがIEで動作しない

$(document).scroll(function(){ 
if($(document).scrollTop() >= 800) { 
$('#menu').removeClass('default').addClass('fixed'); 
} 
else{$('#menu').removeClass('fixed').addClass('default');} 
}); 

誰が見てしたい場合は、リンクがhttp://www.vivianzoric.com/esiq/index.html

P.S.ですそれはIE7で崩壊してしまう理由は、私がこれだけ昨日の作業を開始し、私に聞かないでください:) IE

では正常に動作しないscrollTop()

+0

'聞かないで使用相続人は正確なコード

UPDATE

.scrollTopは(とにかくIE8)IEでの仕事をして、あなたが知っているので、なぜ私はそれがIE7で崩壊する ' - 私はそれを知っている。 IEはちょうど... IE –

+0

'.scroll()'イベントが呼び出されているかどうか知っていますか? 'addClass()'と 'removeClass()'がうまく動作しない( '.className'を読み込んで設定しているので)、次にイベントが動作しない可能性が高いので、' scrollTopあなたが期待していることをやっていないか、セレクターが期待したことをやっていません。おそらく、正しく動作していないコードの行を絞り込む必要があります。 – jfriend00

+0

また、ドキュメントオブジェクト以外のもの(おそらく 'document.body')で' .scrollTop() 'を実行する必要があるかもしれません。 – jfriend00

答えて

3

を使用してみてくださいを参照してください。代わりのdocument

$(window).scroll(function(){ }); 

しかし保つ$(document).scrollTop(function()

そして、ちょうど私は現在、私のサイトの1

$(window).scroll(function(){ 
    if($(document).scrollTop() >= 800)){ 
     //my code 
    }else{ 
     //my code 
    } 

}); 
+0

私はリンクを確認できます。IE7と8を除くすべてのブラウザですべて正常に動作します。 – suludi

+0

これはIE8で動作する理由を説明してください。文書はありませんか? – suludi

+0

私は100%ではありませんが、IEは文書上で 'scroll'イベントを処理できないと思います。 'window'がすべてをオーバーレイするので、常に呼び出されます。もう一度私は100% –

-1
+1

'scrollTop()'ドキュメントにリンクするだけでは不十分です...この答えを説明してください。 – Sparky

+0

'scrolltop'はIE8で動作するので、9とは思えません。 –

+0

RTFM、guys;) 怠け者でなくても、ドキュメントを完全に読んでいただければ、非常に有益なコメントが表示されます。 例:http://api.jquery.com/scrollTop/#comment-133682921 –

関連する問題