我有一个由几个部分组成的页面(想想经典的parralax设置)。现在,我已经创建了所有内容,我希望在滚动到某些部分时让某些部分变得更酷。为什么这个if语句继续执行?
在我的无知中,我假设我需要获取每个位置的offset()。top并将其与窗口的scrollTop()进行比较。
这里是我怎么回事,作为一个例子:
$(window).scroll(function(){
var scrollPosition = $(this).scrollTop();
var sectionFourPosition = $('.slideFour').offset().top;
var sectionFourFlag = 0;
if(sectionFourFlag == 0 && scrollPosition >= sectionFourPosition ){
alert("You Passed the Top of Section Four");
sectionFourFlag++;
};
$('.ScrollPositionDisplay').text(scrollPosition);
$('.SectionFourOffsetDisplay').text(sectionFourPosition);
$('.SectionFourFlagDisplay').text(sectionFourFlag);
});
我有一个小面板我用我展示各种变量的状态在我的项目。因为我只想执行一次,所以我在那里有SectionFourFlag。我想我可以然后翻转国旗到1,并应该打破IF声明...
没有这样的运气。尽管旗帜显示为一体,它仍然继续运行。因此,对于每一次我滑过“sectionFourPosition”的警告,警报会再次出现,再次,再次...
这SEEMS喜欢它应该工作,我的GoogleFu失败了我。
我遗漏了什么?
所以,如果我知道我需要声明它之外的“.scroll $(窗口)(函数()” Becasue ......每次我滚动,而它在这里,我设置它回到0? 我希望我更接近Grokking这 – Incomitatum
有点多,是的,如果你定义它的过程之外,它不会重置,你的代码会按预期工作 –
感谢您抽出宝贵的时间来帮助您,我认为我现在明白了一点点。 – Incomitatum