Ich versuche, ein Skript zu arbeiten, das das Navigationselement am oberen Rand der Seite repariert, wenn Sie die Seite bis zum Nav-Tag scrollen. Was es aber jetzt macht, ist, dass das Fixieren am oberen Rand der Seite nur dann beginnt, wenn Sie die Hälfte der Seite weit nach dem Nav-Tag gescrollt haben? Sie könnenNav nicht am Seitenanfang nach dem Scrollen fixiert?
<script>
$(document).ready(function(){
$(window).bind('scroll', function() {
var navHeight = $(window).height() - 25;
if ($(window).scrollTop() > navHeight) {
$('nav').addClass('fixed');
}
else {
$('nav').removeClass('fixed');
}
});
});
</script>
HTML
<nav id="nav_desktop">
<ul>
<li><a href="index.html">Home</a></li>
<li><a href="#dt">Downtown Tour</a></li>
<li><a href="#gt">Growth Tour</a></li>
<li><a href="#lt">Landmarks Tour</a></li>
<li><a href="#ct">Contact</a></li>
</ul>
CSS
die Seite in Frage hereScript ansehen
.fixed { position: fixed; top: 0; height: 25px; z-index: 1; }
'var navHeight = $ (window) .height() - 25;' macht navHeight gleich der gesamten Höhe des Fensters minus 25 Pixel. Wenn Sie also scrollen, wird das Nav erst nach a Der Inhalt des gesamten Fensters ist vergangen. –