我无法解决滚动时播放一次性动画的问题。我仅在块完全位于可见区域时找到了一个示例。但是一旦他出现在能见度范围内就必须这样做。这是一个小代码:
$(".load-marker").addClass('load-not-active');
var $win = $(window);
var $marker = $('.load-marker');
$win.scroll(function() {
$marker.each(function() {
if ($win.scrollTop() + $win.height() >= $( this ).offset().top &&) {
...
} else {
...
}
});
});
但是动画同时适用于当前块上方的所有块。也就是说,如果用户刷新页面并且滚动保持在页面的中心,那么动画将对它上面的所有元素起作用。并且动画必须仅适用于可见区域中出现的内容。
您需要确定页面高度、元素高度、滚动高度和元素距页面边缘的偏移量。试试这段代码,这里每个 div 只有在完全在范围内时才会突出显示: