2017-06-17 9 views
0

私のウェブサイトには簡単なアニメーションスクロールが追加されていますが、jQueryでは少し変わっています。ウェブサイトのウィンドウ上部がウェブサイトの上部から静的な.navナビゲーションの下にあるときは常に、ナビゲーションバーが表示されます。ただし、リンクをクリックすると(jQuery onClickアニメーションスクロール機能とのリンクがあると仮定します)、.nav-fixedが一時的に非表示になり、ウェブサイトのスクロール後に再び表示されます。私はメッセージをログに記録していますShould hide the navトップのスタティック.navがウィンドウビューにあり、ページの一番下にあってウェブサイト上のonclick jquery関数のリンクをクリックしてもメッセージが一度記録されることに気付きました静的ナビゲーションがウィンドウビューにある場合OnClickはscrollTopを0にします。

解決方法はありますか?コードここhttp://www.mmsmsy.com です:

const addClickToNav = (element) => { 
    $(window.opera ? 'html' : 'html, body').animate({scrollTop: $(element).offset().top - 50}, 1000); 
} 

$('.nav-link-top').on('click',() => $(window.opera ? 'html' : 'html, body').animate({scrollTop: 0}, 1000)); 
$('.link-start').on('click',() => addClickToNav('.about')); 
$('.nav-link-skills').on('click',() => addClickToNav('.skills')); 
$('.nav-link-portfolio').on('click',() => addClickToNav('.portfolio')); 
$('.nav-link-contact').on('click',() => addClickToNav('.contact')); 

$(window).scroll(function() { 
    if ($(this).scrollTop() > $('.nav').offset().top + $('.nav').height() + 50 && $('.nav-fixed').css('display') == 'none') { 
     $('.nav-fixed') 
     .css('display', 'flex') 
     .hide() 
     .slideDown(); 
    } 
    if ($(this).scrollTop() < $('.nav').offset().top + $('.nav').height() + 50) { 
     console.log("Should hide the nav"); 
     $('.nav-fixed').slideUp(); 
    } 
}); 

答えて

0

uは次のようにしてみてくださいでした: は、ここに言及したウェブサイトです

$(window).scroll(function() { 
    if ($(this).scrollTop() > $('.nav').offset().top + $('.nav').height() + 50 && $('.nav-fixed').css('display') == 'none') { 
     $('.nav-fixed') 
     .css('display', 'flex') 
     .hide() 
     .slideDown(); 
    } 
    else if ($(this).scrollTop() < $('.nav').offset().top + $('.nav').height() + 50) 
    { 
     console.log("Should hide the nav"); 
     $('.nav-fixed').slideUp(); 
    } 
}); 
+0

は、あなただけの前に '' 'else'''キーワードを追加しました第二' '' if'''ステートメント?もしそうなら、いいえ、違いはありません。あなたが作った他の変更を見逃してしまったら、私には何も見えないので、それを指摘してください。 –

関連する問題