Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将类添加到具有属性的下一个元素_Javascript_Jquery_Next - Fatal编程技术网

Javascript 将类添加到具有属性的下一个元素

Javascript 将类添加到具有属性的下一个元素,javascript,jquery,next,Javascript,Jquery,Next,我有一个章节列表。其中一些有一个特殊的属性来识别它们。 通过滚动,我将一个类添加到一个具有该属性的部分,只要它在视口中。这是没有问题的 但我还想在下一节中添加一个类“next”,并使用此属性 我已经尝试了.next(),但这不起作用。并且.nextAll()正在将该类添加到具有此属性的所有节中 HTML <section></section> <section scrollsec="yes"></section> <div></d

我有一个章节列表。其中一些有一个特殊的属性来识别它们。 通过滚动,我将一个类添加到一个具有该属性的部分,只要它在视口中。这是没有问题的

但我还想在下一节中添加一个类“next”,并使用此属性

我已经尝试了
.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()
。有许多重复的问题,所以。可能重复的,也许我只是搜索了错误的术语。。。我查一下谢谢