2017-06-12 244 views
1

該代碼控制着我的導航。在滾動300px時在屏幕上向下轉換。而當滾動備份刪除課程後,導航無法返回到原始位置

$(document).ready(function() { 
 

 
    $(window).scroll(function() { 
 

 
    if ($(window).scrollTop() > 300) { 
 
     $('nav').addClass('stick'); 
 
     $('nav').css('top', '0'); 
 
    } 
 

 
    if ($(window).scrollTop() < 300) { 
 
     $('nav').removeClass('stick'); 
 
     $('nav').css('top', '100%'); // my suggestion but doesn't work 
 
    } 
 

 
    }); 
 

 
});
header { 
 
    min-height: 100px; 
 
    width: 100%; 
 
} 
 

 
nav { 
 
    position: absolute; 
 
    top: 0; 
 
    left: 0; 
 
    right: 0; 
 
    min-height: inherit; 
 
    -webkit-transition: top 0.75s ease; 
 
    -moz-transition: top 0.75s ease; 
 
    -ms-transition: top 0.75s ease; 
 
    -o-transition: top 0.75s ease; 
 
    transition: top 0.75s ease; 
 
} 
 

 
nav.stick { 
 
    position: fixed; 
 
    min-height: 100px; 
 
    top: -100%; 
 
    z-index: 999; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<header> 
 
    <nav id="s-nav"> 
 
    ... 
 
    </nav> 
 
</header>

我需要它開始屏幕和過渡下來,只有當滾動> 300像素(與內容< 300像素滾動)(當.stick向上轉變關閉屏幕類被應用)。代碼有效,但是當我向後滾動(當.stick類被移除時)導航仍然在屏幕外。

+0

因爲'$( '導航')的CSS( '頂', '100像素')的可能;'? –

+0

我嘗試過,沒有。似乎並不重要。 – user3550879

+0

似乎按預期工作[jsfiddle](https://jsfiddle.net/NotInUse/3n4zqg70/)。你能解釋一下這個問題嗎? – Scott

回答

0

如果我正確地理解了你,你想要元素回到原來的位置,它開始的權利?如果是這樣;嘗試下面的調整;

$(document).ready(function() { 
 

 
    $(window).scroll(function() { 
 

 
    if ($(window).scrollTop() > 300) { 
 
     $('nav').addClass('stick'); 
 
     $('nav').css('top', '0'); 
 
    } 
 

 
    if ($(window).scrollTop() < 300) { 
 
     $('nav').removeClass('stick'); 
 
     $('nav').css('top', '0'); // try this. 
 
    } 
 

 
    }); 
 

 
});
header { 
 
    min-height: 100px; 
 
    width: 100%; 
 
} 
 

 
nav { 
 
    position: absolute; 
 
    top: 0; 
 
    left: 0; 
 
    right: 0; 
 
    min-height: inherit; 
 
    -webkit-transition: top 0.75s ease; 
 
    -moz-transition: top 0.75s ease; 
 
    -ms-transition: top 0.75s ease; 
 
    -o-transition: top 0.75s ease; 
 
    transition: top 0.75s ease; 
 
} 
 

 
nav.stick { 
 
    position: fixed; 
 
    min-height: 100px; 
 
    top: -100%; 
 
    z-index: 999; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<header> 
 
    <nav id="s-nav"> 
 
    ... 
 
    </nav> 
 
</header>

+0

問題是它只是'出現'在頂部。我希望它在應用.stick類時從頂部開始動畫。所以它需要在應用時從屏幕開始 – user3550879