-1

所以我正在编写一些代码,我需要检查我生成的数组中的一个元素是否符合特定标准,如果符合,则淡入,否则淡出#next和#previous元素. 这是我现在拥有的:

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的值。因此为什么我需要说“如果任何返回的对象的偏移量('stuff')等于scrollTop,那么fadeIn,否则,fadeOut。

任何帮助将不胜感激!

4

1 回答 1

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");
于 2012-11-11T05:39:27.663 回答