Javascript 使用id和名称在滚动上更改活动锚定标记
正如标题中所述,我在试图弄清楚如何让它发挥作用时遇到了一些问题。我知道有几个这样的例子,但它们不适用于我正在做的事情或我拥有的代码 我对这个项目非常深入,不能真正重新开始,我已经完成了大部分工作,但是当用户在页面上滚动并且菜单中的锚标记随之改变时,我无法获得任何工作 是否有一个简单的解决方案,使用最新的jquery和javascript,将符合和 还是我必须重新开始这个项目 以下是我所拥有的一些代码:Javascript 使用id和名称在滚动上更改活动锚定标记,javascript,jquery,html,css,Javascript,Jquery,Html,Css,正如标题中所述,我在试图弄清楚如何让它发挥作用时遇到了一些问题。我知道有几个这样的例子,但它们不适用于我正在做的事情或我拥有的代码 我对这个项目非常深入,不能真正重新开始,我已经完成了大部分工作,但是当用户在页面上滚动并且菜单中的锚标记随之改变时,我无法获得任何工作 是否有一个简单的解决方案,使用最新的jquery和javascript,将符合和 还是我必须重新开始这个项目 以下是我所拥有的一些代码: <nav id="menu" class="menu">
<nav id="menu" class="menu">
<a class="menu-trigger"></a>
<ul>
<li><a href="#">:: Join Community ::</a></li>
<li><a href="#home_wrapper" class="active">Home</a></li>
<li><a href="#about_wrapper">About</a></li>
<li><a href="#advertise_wrapper">Advertise</a></li>
<li><a href="#central_wrapper">GP Central</a></li>
<li><a href="#contact_wrapper">Contact</a></li>
<li><a href="#career_wrapper">Career</a></li>
<li><a href="#press_wrapper">Press</a></li>
<li><a href="#">:: My Dashboard ::</a></li>
</ul>
</nav>
<div id="main_body">
<div id="about_wrapper">
</div>
<div class="clear"></div>
<div id="advertise_wrapper">
</div>
<div class="clear"></div>
<div id="central_wrapper">
</div>
<div class="clear"></div>
<div id="contact_wrapper">
</div>
<div class="clear"></div>
<div id="career_wrapper">
</div>
<div class="clear"></div>
<div id="press_wrapper">
</div>
</div>
我试过这个:
$(window).scroll(function() {
var windscroll = $(window).scrollTop();
$('.page').each(function(i) {
var posTop = $(this).position().top,
h = $(this).height();
if (posTop <= windscroll && posTop + h > windscroll ) {
$('.menu ul li').removeClass('active');
$('.menu ul li').eq(i).addClass('active');
}
});
});
$(窗口)。滚动(函数(){
var windscroll=$(window.scrollTop();
$('.page')。每个(函数(i){
var posTop=$(this).position().top,
h=$(this).height();
if(事后风蚀){
$('.menu ul li').removeClass('active');
$('.menu ul li').eq(i).addClass('active');
}
});
});
任何帮助都将不胜感激 在4dgaurav的帮助下终于找到了答案
var sections = $('div')
, nav = $('.menu')
, nav_height = nav.outerHeight();
$(window).on('scroll', function () {
var cur_pos = $(this).scrollTop();
sections.each(function() {
var top = $(this).offset().top - nav_height,
bottom = top + $(this).outerHeight();
if (cur_pos >= top && cur_pos <= bottom) {
nav.find('a').removeClass('active');
sections.removeClass('active');
$(this).addClass('active');
nav.find('a[href="#'+$(this).attr('id')+'"]').addClass('active');
}
});
});
nav.find('a').on('click', function () {
var $el = $(this)
, id = $el.attr('href');
$('html, body').animate({
scrollTop: $(id).offset().top - nav_height
}, 500);
return false;
});
var sections=$('div')
,导航=$(“.menu”)
,nav_height=nav.outerHeight();
$(窗口).on('scroll',函数(){
var cur_pos=$(this.scrollTop();
节。每个(函数(){
var top=$(this).offset().top-导航高度,
bottom=top+$(this.outerHeight();
如果(cur_pos>=top&&cur_pos试试这个
$(function(){
$(window).scroll(function () {
var windscroll = $(window).scrollTop();
$('ul li a').each(function(i) {
var posTop = $($(this).attr('href')).position().top,
h = $($(this).attr('href')).height();
if (posTop <= windscroll && posTop + h > windscroll ) {
$('.menu ul li a').removeClass('active');
$(this).addClass('active');
} else {
$(this).removeClass('active');
}
});
});
});
$(函数(){
$(窗口)。滚动(函数(){
var windscroll=$(window.scrollTop();
$('ul li a')。每个(功能(i){
var posTop=$($(this.attr('href')).position().top,
h=$($(this.attr('href')).height();
if(事后风蚀){
$('.menu ul li a').removeClass('active');
$(this.addClass('active');
}否则{
$(this.removeClass('active');
}
});
});
});
注意:正确应用CSS
你能做一把小提琴吗?这里的.page
是什么?有没有一个使用最新jquery和javascript的简单解决方案?:是的。它叫ScrollSpy:Thank you 4dgaurav-这个链接很有用!我做了一些修改,但没有其他链接那么多!