回答已编辑的问题
这与以前的原理相同,只是在您向下滚动多个px
而不是特定时触发div
动画
API 文档
例子
$(document).scroll(function () {
var y = $(this).scrollTop();
if (y > (200)) {
$(".magic").fadeIn('fast').addClass("fadeInDown").removeClass("fadeOutUp");
}
if ((y < (200)) && $('.magic').hasClass('fadeInDown')) {
$(".magic").addClass("fadeOutUp").removeClass("fadeInDown").fadeOut('slow');
}
//magic2
if (y > (300)) {
$(".magic2").fadeIn('fast').addClass("fadeInRight").removeClass("fadeOutRight");
}
if ((y < (300)) && $('.magic2').hasClass('fadeInRight')) {
$(".magic2").addClass("fadeOutRight").removeClass("fadeInRight").fadeOut('slow');
}
//magic3
if (y > (400)) {
$(".magic3").fadeIn('fast').addClass("fadeInLeft").removeClass("fadeOutLeft");
}
if ((y < (400)) && $('.magic3').hasClass('fadeInLeft')) {
$(".magic3").addClass("fadeOutLeft").removeClass("fadeInLeft").fadeOut('slow');
}
//magic4
if (y > (500)) {
$(".magic4").fadeIn('fast').addClass("fadeInUp").removeClass("fadeOutDown");
}
if ((y < (500)) && $('.magic4').hasClass('fadeInUp')) {
$(".magic4").addClass("fadeOutDown").removeClass("fadeInUp").fadeOut('slow');
}
});
回答原始问题
页面加载动画完全可以仅在 css 中实现。只需设置一个关键帧动画并将其附加到一个元素上,当该元素加载时,动画就会完成它的工作。
由用户向下滚动到一个元素触发的动画需要一点 jquery。
$(document).scroll(function () {
var y = $(this).scrollTop();
var x = $("#myDiv").position();
if (y > (x.top - 28)) {
$(".magic").addClass(
"bounceInRight");
}
else {
$(".magic").removeClass(
"bounceInRight");
}
});
例子