ユーザーがページをスクロールしたときに、DOMの4つのオブジェクトを移動したいと思います。
あなたは私が話しているページをこのアドレスでチェックすることができます:
http ://www.tessuti-arredo.it/new/chi_siamo/rassegna/
ユーザーがスクロールすると- $(window).scroll(function()を使用しています-一部のオブジェクトを移動するためにwindow.scrollTopが10ピクセルを超えているかどうかを確認します。これは正常に機能しているようですが、ELSEステートメント(i scrollTopが10ピクセル未満の場合を意味します)-そしてこれらのオブジェクトは元の位置に戻る必要があります-特に私が移動する4つのオブジェクトのうちの2つ(クラスを呼び出して一緒に移動する2つの固定オブジェクト)で奇妙な動作をします。
私の貧弱な英語で説明するのは少し難しいかもしれませんが、私が上に投稿したアドレスを見ると非常に理解しやすいので、ページをスクロールしてみてください。
移動したいオブジェクトは次のとおりです。-リンク(a)#header div = $( "#header h1 a")内に含まれるオブジェクト-id = $( "#sidebar")で呼び出される左側のサイドバーメニュー-および2つの固定div、メインの水平メニューとその背景、クラスによって呼び出される= $( "。moveMenu")
最後に重要なことの1つは、Firefoxでは問題ないようですが、他のすべてのブラウザーでは、コードにエラーがあるように見える可変遅延があります。
私のコードについて言えば、ここにあります:
$(document).ready(function(){
$(window).scroll(function(){
if($(this).scrollTop() > 10) {
$("#sidebar").stop().animate({top:'119px'}, 100, function (){
// some callback
});
$("#header h1 a").stop().animate({marginTop:'30px'}, 100, function (){
// some callback
});
$(".moveMenu").stop().animate({top:'0'}, 300, function (){
// here i change the class of fixed objects to call them back on else statement
$(this).removeClass('moveMenu').addClass('moveMenu2');
});
}else{
// this is happening with unwanted delay
$(".moveMenu2").stop().animate({top:'90'}, 300, function (){
$(this).removeClass('moveMenu2').addClass('moveMenu');
});
$("#sidebar").stop().animate({top:'89px'}, 100, function (){
$(this).css({'padding-top' : '40px'});
});
$("#header h1 a").stop().animate({marginTop:'0px'}, 100, function (){
// some callback
});
}
});
});
私はいくつかの空のコールバックがあることを知っています、私はそれを何かで満たす準備ができているようにそれらを保持しました、私はそれらを削除しようとしました、何も変更されません。
私が試したもう1つのことは、クラスではなく特定のIDで2つの遅延オブジェクトを呼び出すことですが、何も改善されていません...
私はあなたが私のコーディングにいくつかのエラーを見つけることを本当に望んでいます、私は私がそれほど良くないことを知っています。