Javascript 将类添加到具有属性的下一个元素
我有一个章节列表。其中一些有一个特殊的属性来识别它们。 通过滚动,我将一个类添加到一个具有该属性的部分,只要它在视口中。这是没有问题的 但我还想在下一节中添加一个类“next”,并使用此属性 我已经尝试了Javascript 将类添加到具有属性的下一个元素,javascript,jquery,next,Javascript,Jquery,Next,我有一个章节列表。其中一些有一个特殊的属性来识别它们。 通过滚动,我将一个类添加到一个具有该属性的部分,只要它在视口中。这是没有问题的 但我还想在下一节中添加一个类“next”,并使用此属性 我已经尝试了.next(),但这不起作用。并且.nextAll()正在将该类添加到具有此属性的所有节中 HTML <section></section> <section scrollsec="yes"></section> <div></d
.next()
,但这不起作用。并且.nextAll()
正在将该类添加到具有此属性的所有节中
HTML
<section></section>
<section scrollsec="yes"></section>
<div></div>
<section></section>
<section scrollsec="yes"></section>
<section></section>
<div></div>
<section></section>
<section scrollsec="yes"></section>
JS
function isScrolledIntoView(elem) {
var docViewTop = $(window).scrollTop();
var docViewBottom = docViewTop + $(window).height();
var elemTop = $(elem).offset().top;
var elemBottom = elemTop + $(elem).height();
return ((elemBottom <= docViewBottom) && (elemTop >= docViewTop));
}
$(window).scroll(function () {
$('section[scrollsec=yes]').each(function () {
if (isScrolledIntoView(this) === true) {
$(this).addClass('visible');
$(this).next("section[scrollsec=yes]").addClass('next');
} else {
$(this).removeClass('visible');
}
});
});
函数是crolledintoview(elem){
var docViewTop=$(window.scrollTop();
var docViewBottom=docViewTop+$(window).height();
var elemTop=$(elem).offset().top;
var elemBottom=elemTop+$(elem).height();
返回((elemBottom=docViewTop));
}
$(窗口)。滚动(函数(){
$('section[scrollsec=yes]')。每个(函数(){
if(isScrolledIntoView(此)==true){
$(this.addClass('visible');
$(this.next(“section[scrollsec=yes]”)addClass(“next”);
}否则{
$(this.removeClass('visible');
}
});
});
这不是直观的
.next()
获取下一项,然后检查它是否与筛选器匹配-您需要.nextAll(筛选器).first()
。有许多重复的问题,所以。可能重复的,也许我只是搜索了错误的术语。。。我查一下谢谢