当页面滚动到每个元素时,我试图让 css 动画正确关闭,所以我以这个 jquery 为例:
// element animation scroll detection
(function ($, document, undefined) {
var animation1 = $('.animation1').offset().top;
$(window).scroll(function() {
var winTop = $(window).scrollTop();
var winHeight = $(window).height();
if(winTop >= (animation1-winHeight)){
$('.animation1').addClass("animate-from-left");
}
$('.scrollTop').html("scrollTop: "+winTop);
$('.elementOffset-top').html(" element Offset.top: "+animation1);
});
})(jQuery, document);
这是该版本的实时版本:http: //bbmthemes.com/themes/smart/
.animation1 是第一个动画的 div。在该 div 的正上方,我使用 jquery 来输出 animation1 的 Offset.top 的值以及 scrollTop 的值,滚动时会更新。
我无法理解的是,为什么当我滚动以使 jquery 变量输出正好位于屏幕的最顶部边缘时,它是否说 scrollTop 距离比 div.animation1 的 Offset.top 大〜430px,这基本上是触摸的屏幕的顶部边缘?
这完全抛弃了何时触发动画,当它们位于页面的不同部分时,我无法让它们始终如一地工作,因为这两个值的差异不断变化。
我试图将其放入 jsfiddle 中,但我无法以相同的方式复制问题。这是一个非常混乱的版本,但输出的值并不完全相同:http: //jsfiddle.net/UsgNY/1/