如果任何对象满足数组中的方程条件

时间:2012-11-11 05:35:17

标签: javascript jquery arrays for-loop

所以我正在研究一些代码,我需要检查我生成的数组中的一个元素是否符合某个条件,如果是,则为fadeIn,否则淡化#next和#以前的元素。这就是我现在所拥有的:

HTML:
<div id="#next"></div>
<div id="#prev"></div>
<div id="page1" class="section"></div>
<div id="page2" class="section"></div>
<div id="page3" class="section"></div>

的Javascript

$(window).on('scroll', function () {
var i, stuff = [],
scrollTop = $(window).scrollTop(),
sects = $('.section')

sects.each(function() {
 stuff.push(parseInt($(this).offset()['top'],10));
});

for(i = 0; i < stuff.length; i++) {

        if (stuff[i] == scrollTop) { $('#next,#prev').fadeIn("fast")}
        if (stuff[i] != scrollTop) { $('#next,#prev').fadeOut("fast")}
}

});

上面的代码会产生闪烁效果,因为无论如何,“stuff”总是会有一个不等于scrollTop的值。因此,为什么我需要说“如果任何返回的对象有一个等于scrollTop的偏移量('stuff'),那么fadeIn,else,fadeOut。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

这是一个相当基本的标志值场景:

var flag = false;
for(i = 0; i < stuff.length; i++) {

        if (stuff[i] == scrollTop) {
            flag = true;
            break;
        }
}

if (flag)
    $('#next,#prev').fadeIn("fast");
else
    $('#next,#prev').fadeOut("fast");