我有一个设置页面的边栏,就像索引一样。每次滚动到页面的不同部分时,我都希望相应的链接突出显示。我意识到这已经被问到过了,我试着按照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