2016-07-30 9 views
0

Wall Street Journalのウェブサイトと同じように、スクロールするときにナビゲーションバー内のロゴを展開するコードを記述しました。しかし、スクロールすると、ロゴが表示され、nav-barの中の他の要素が動く/振動する。Navbar内のテキスト/ロゴがスクロールして振れて表示される

のjQuery:

$(window).on('scroll', function() { 
    var scrollTop = $(window).scrollTop(); 
    if (scrollTop > 50) { 
     $('#logo').stop().animate({height: "50px"},100); 
     $('#nav').css({height: "110px"}); 
    } 
    else { 
     $('#logo').stop().animate({height: "70px"},100); 
     $('#nav').css({height: "130px"}); 
    } 
}); 

CSS:

#logo { 
    height: 70px; 
    width: auto; 
    margin: auto; 
    display: block; 
    margin: auto; 
} 
#nav{ 
    display: block; 
    max-width: 100%; 
    height: 120px; 
    position: relative; 
    margin: 0; 
    background-color: rgba(249,249,249,1); 
    font-family: MyriadPro-RegularImport; 
} 
+0

問題を再現できるようにjsfiddleリンクを追加してください。現在のコードはjsfiddleで動作していません – geeksal

答えて

1

私はその後、アニメーションのためのCSSトランジションを使用して、クラスを追加するためにjQueryを使用することをお勧めします:

$('#logo').addClass('scrolled'); 

はCSS:

#logo { 
    height: 70px; 
    transition: all 200ms ease-out; // using 'all' so that all properties are animated 
} 

#logo.scrolled { 
    height: 50px; 
} 

CSSアニメーションはよりスムーズになり、トラブルシューティングが容易になります。

+0

.addClassと.removeClassが実装されていますが、振動/ウィグリングの効果を防​​ぐために何もしませんでした。 –

+0

jsfiddleを投稿できますか?この特定の問題を視覚化するのは難しいです。 – Toby

+0

それを見て、それは検査窓でちょっとした振動のことをしていただけだった。あなたの解決策は、しかし、物事を円滑にするのに役立つようです。 ありがとう! –

関連する問題