我有一個設置頁面的邊欄,就像索引一樣。每次滾動到頁面的不同部分時,我都希望相應的鏈接突出顯示。我意識到這已經被問到過了,我試着按照previous question告訴的那樣做。我也看了幾個博客,儘管他們的代碼看起來很複雜。用滾動突出顯示側邊欄鏈接
HTML
<div id="sidebar">
<nav class="navlinks">
<ul style="list-style:none" id="sidebar-id">
<li> <a href="#Profile-settings"> Profile </a></li>
<li> <a href="#social-settings"> Social Media </a></li>
<li> <a href="#"> Logout </a></li>
/ul>
</nav>
</div>
<section id="Profile-settings">
<!--some content-->
</section>
<section id="social-settings">
<!--some content-->
</section>
CSS:
.active {
color:red;
}
JS
$(document).ready(function() {
$(document).scroll(function() {
var scroll_top = $(document).scrollTop();
var div_one_top = $('#Profile-settings').position().top;
var div_two_top = $('#social-settings').position().top;
if(scroll_top > div_one_top && scroll_top < div_two_top) {
//You are now past div one
$('a[href="#Profile-settings"]').addClass('active');
$('a[href="#social-settings"]').removeClass('active');
} else if (scroll_top > div_two_top) {
$('a[href="#social-settings"]').addClass('active');
$('a[href="#Profile-settings"]').removeClass('active');
}
});
});
當我運行這個雖然只有<li> <a href="#Profile-settings">Profile</a></li>
顯示活動類,不斷地,這意味着它不會改變的時候我滾動到底部或頂部。第二個li
(#社交設置)根本不會有.highlight
類被添加到它。 我對javascript和jquery非常陌生,並且非常感謝所有的幫助。謝謝大家。
嘗試'$(窗口).scroll',而不是'$(文件).scroll'? (也是'$(window).scrollTop()')'$('#Profile-settings')。offset()。top'而不是'position()' – AVAVT
它沒有工作Av Avt –
請檢查我的答案。有許多小事必須完成,所以我不能在評論中寫下全部內容。如果有什麼東西太混亂只是告訴我:) – AVAVT