Jquery 每个都不在导航链接上工作
嗨,朋友们,我在一个单页网站上工作。我想当用户滚动和文本的任何部分达到顶部0的适当链接将变成红色 您可以在下面检查或检查我的代码 脚本Jquery 每个都不在导航链接上工作,jquery,scroll,Jquery,Scroll,嗨,朋友们,我在一个单页网站上工作。我想当用户滚动和文本的任何部分达到顶部0的适当链接将变成红色 您可以在下面检查或检查我的代码 脚本 $( 'html, body' ).scroll(function() { var windscroll = $(this).scrollTop(); $('.section').each(function(i) { if ($(this).position().top <= windscroll) {
$( 'html, body' ).scroll(function() {
var windscroll = $(this).scrollTop();
$('.section').each(function(i) {
if ($(this).position().top <= windscroll) {
$('.nav li.active').removeClass('active');
$('.nav li:nth-child('+i+')').addClass('active');
}else {
$('.nav li.active').removeClass('active');
$('.nav li:first').addClass('active');
}
});
})
$('html,body')。滚动(函数(){
var windscroll=$(this.scrollTop();
$('.section')。每个(函数(i){
如果($(this).position().top尝试使用此Jquery插件突出显示滚动页面内容的标题。
你也可以找到更多类似的插件
如果您想自己处理突出显示,那么请使用Jquery waypoint插件
解决方案:请参阅工作演示
你做错了几件事,下面是逻辑的解释:
1) 您在html/body上附加了scroll事件,但对它们不起作用,scroll事件会在DOM对象(如document/window/element等)上触发,还要注意,在将事件附加到DOM对象(如document/window)时,不要将其包装为$('window')之类的字符串,因为这样做不起作用,正确的方式是$(window)
2) 您突出显示链接的逻辑不正确
(i) 当用户滚动时,您必须检查是否(sectionTop>=scrollTop),即当用户滚动到节的顶部时,然后突出显示其链接。此时,节的标题与顶部标题底部接触
(ii)还必须考虑节内容高度,当用户向下滚动到区段内容时,必须检查(StopeTop+CeSeSealSealth>>ScLoLTP),然后保持突出其链接。这意味着滚动尚未通过/移动到下一节标题的顶部,并且当前部分内容仍然可见。
(iii)现在,当滚动到下一节标题顶部,即下一节标题顶部接触顶部标题底部时,上一节突出显示条件变为假,现在下一节标题链接突出显示
3)您还必须考虑顶部标题高度,从$$(this).Posits()中减去标题高度。因为您的内容隐藏在粘性标题后面。因此,在您的情况下逻辑顶部是顶部标题底部而不是页面顶部。
你的一些内容超出了栏目组合,这是有意的吗
$(window).scroll(function () {
var windscroll = $(this).scrollTop();
$('.section').each(function (i) {
if (($(this).position().top - 92) >= windscroll || ($(this).position().top - 92 + $(this).height()) >= windscroll) {
$('.nav li.active').removeClass('active');
$('.nav li:nth-child(' + (i + 1) + ')').addClass('active');
return false; // To break Jquery each loop
} else { // I don't think this is needed
//$('.nav li.active').removeClass('active');
// $('.nav li:first').addClass('active');
}
});
})
使用$(window).scroll(function(){}),JS fiddle Demo-。您可能需要更正您的逻辑,因为现在代码的最后一个选项卡在滚动到底部时没有突出显示。