這是一個單頁網站,父項菜單項固定在內容區域中的部分。除了平滑滾動之外,所有內容都可以正確錨定並正常工作。
點擊「$(。nav a)」時如何正確設置平滑滾動?
的jQuery:
jQuery(function($) {
var services = $('.services').offset().top;
var locations = $('.locations').offset().top;
var about = $('.about').offset().top;
var contact = $('.contact').offset().top;
$(window).scroll(function() {
var scrollPos = $(document).scrollTop();
if (scrollPos >= services && scrollPos < locations) {
$('.nav a').removeClass('active');
$('.wsite-nav-2 a').addClass('active');
} else if (scrollPos >= locations && scrollPos < about) {
$('.nav a').removeClass('active');
$('.wsite-nav-3 a').addClass('active');
} else if (scrollPos >= about && scrollPos < contact) {
$('.nav a').removeClass('active');
$('.wsite-nav-4 a').addClass('active');
} else if (scrollPos >= contact) {
$('.nav a').removeClass('active');
$('.wsite-nav-5 a').addClass('active');
} else if (scrollPos <= services) {
$('.nav a').removeClass('active');
$('.wsite-nav-1 a').addClass('active');
}
});
$('.wsite-nav-1 a').addClass('active');
$('.nav a').click(function() {
$('.nav a, .wsite-nav-1 a').removeClass('active');
$(this).addClass('active');
var target = $('.anchor-link').offset().top;
$('html, body').animate({
scrollTop: jQuery(jQuery(this).attr('href')).offset().top
}, 500);
return false;
});
});
HTML:
<div class="nav">
<ul>
<li class="wsite-nav-1"><a href="#">Home</a></li>
<li class="wsite-nav-2"><a href="#">Services</a></li>
<li class="wsite-nav-3"><a href="#">Locations</a></li>
<li class="wsite-nav-4"><a href="#">About</a></li>
<li class="wsite-nav-5"><a href="#">Contact</a></li>
</ul>
</div>
<div class="content">
<div class="anchor">
<a name="A" class="anchor-link services"></a>
</div>
<div class="anchor">
<a name="B" class="anchor-link locations"></a>
</div>
<div class="anchor">
<a name="C" class="anchor-link about"></a>
</div>
<div class="anchor">
<a name="D" class="anchor-link contact"></a>
</div>
</div>
使值'500'更大 –
@TemaniAfif沒有去,但感謝您的建議! – Weebs