Javascript 当滚动条到达特定位置时设置div动画

Javascript 当滚动条到达特定位置时设置div动画,javascript,jquery,html,css,scroll,Javascript,Jquery,Html,Css,Scroll,我的网站目前在一个滚动布局中有三个部分。标题为两个部分:About&Contact(这些是div框),当您滚动到页面底部时,将显示动画。我试图实现的是,当用户向下滚动并点击每个(div框)部分的底部(而不是网站的底部)时,动画就会发生 我认为我需要实现.offset()函数,但不确定这是否正确 任何帮助都将不胜感激 CSS JS var header=$('.header'), 额外=10;//以防你想在底部触发它。 css({opacity:'0',display:'block'}); $(窗

我的网站目前在一个滚动布局中有三个部分。标题为两个部分:About&Contact(这些是div框),当您滚动到页面底部时,将显示动画。我试图实现的是,当用户向下滚动并点击每个(div框)部分的底部(而不是网站的底部)时,动画就会发生

我认为我需要实现.offset()函数,但不确定这是否正确

任何帮助都将不胜感激

CSS

JS

var header=$('.header'),
额外=10;//以防你想在底部触发它。
css({opacity:'0',display:'block'});
$(窗口)。滚动(函数(){
var scrolledLength=($(窗口).height()+额外)+$(窗口).scrollTop(),
documentHeight=$(document.height();
log('Scroll length:'+Scrolled length+'Document height:'+documentHeight)
如果(滚动长度>=文档高度){
标题
.addClass('top')
.stop().animate({top:'20',不透明:'1'},800);
}
else if(scrolledLength看起来像position(),在这种情况下会更好。position方法是相对于文档的,而offset是相对于父元素的。它返回一个属性为“top”和“left”的对象。它一次只能返回一个元素的位置,因此对于第一个div,您需要使用first()和eq()得到一个特定的

.fillWindow的底部将是其垂直位置+高度

var $fillWindow = $(".fillWindow").first(), // or eq() for others
    position = $fillWindow.position(),
    height = $fillWindow.height();
    //bottom = position.top + height;
scrollTop()现在可用于检查用户何时滚动通过.fillWindow

if ( $(window).scrollTop() >= position.top ) {
    // do the animation here
} else {
    // do something else
}

编辑:我刚刚发现了我的错误。应该是$(window)。scrollTop()。您还应该测试scrollTop是否位于.fillWindow的顶部。

既然stackoverflow社区说询问指向github回购的链接是否无效,我将在这里发布该链接。这是否有效:engine.js顶部的一个变量可能是您需要使用的,但如果不行,您可以在鼠标悬停时使用它他很满足。对不起,我不太确定我是否听懂了。原谅我,因为我只是个新手,还在学习(慢慢哈)@php_purest你在做什么类型的动画?它做了你想做的吗?你会在我创建的JS小提琴中看到我试图实现的动画。你会注意到,一旦用户滚动到文档底部,动画就会开始。-我试图在用户滚动到div框底部后开始动画称为“填充窗口”"而不是整个文档。-至于动画,名为“header”的div框沿y轴向上动画,并从0%淡入到100%。一旦用户离开页面中的点,则反转。@php_purestHi Alex,感谢您的输入。.我已将建议的代码插入JS Fiddle,不幸的是,我无法将其返回工作?-这是最新的JS小提琴-
if ( $(window).scrollTop() >= position.top ) {
    // do the animation here
} else {
    // do something else
}
if ( $(window).scrollTop() >= position.top ) {
    // do the animation here
} else {
    // do something else
}