我正在尝试使用Daniel Eden的animate.css版本3.5.1和Dirk Groenen的jquery-viewport-checker版本1.8.7为特定网页上的不同动画类元素添加“延迟”。
我尝试使用setTimeout函数,如...
setTimeout(function () {
jQuery('.fadeinleft1').addClass("hidden").viewportChecker({
classToAdd: 'visible animated fadeInLeft',
offset: 100
});
}, 500
);
但这显然也会影响隐藏的课程。我只需要在到达视口时延迟动画,我可以相应地延迟每个对象。一直在寻找,但还没有找到答案。
答案 0 :(得分:12)
去图,我一问一个问题,就找到一个只涉及添加css的修复程序。不需要触摸javascript。使用animate.css和viewport-checker时,可以非常快速轻松地实现延迟动画。你可以通过添加一个使用" animation-delay。"
的css类来实现使用Javascript:
jQuery('.fadeinleft').addClass("hidden").viewportChecker({
classToAdd: 'visible animated fadeInLeft',
offset: 100
});
根据需要创建以下动画延迟css以及您想要的数量,并且可以在所有动画上全局使用它们:
.delay-1 {
animation-delay: .25s;
}
.delay-2 {
animation-delay: .5s;
}
.delay-3 {
animation-delay: .75s;
}
.delay-4 {
animation-delay: 1s;
}
然后您需要做的就是将类添加到动画元素中:
<div class="col-md-4 fadeinleft">
<a href="#">
<div class="box-border-wht">
<p>Title 1</p>
<img src="/images/image1.jpg">
</div>
</a>
</div>
<div class="col-md-4 fadeinleft delay-1">
<a href="#">
<div class="box-border-wht">
<p>Title 2</p>
<img src="/images/image2.jpg">
</div>
</a>
</div>
<div class="col-md-4 fadeinleft delay-2">
<a href="#">
<div class="box-border-wht">
<p>Title 3</p>
<img src="/images/image3.jpg">
</div>
</a>
</div>
就是这样!
答案 1 :(得分:1)
我不确定您为什么要使用viewportChecker()
或使用任何javascript / jQuery。您发布的解决方案是使用jQuery将hidden
css类添加到您的元素(自Bootstrap 4起的hidden
has been replaced by d-none
),但这是不必要的,因为animated
类将为您自动处理此问题。 Animate.css的目标是提供高效,无缝的动画,而无需多余的javascript / jQuery代码。
因为Animate.css使用animation(-name)
css属性为元素设置动画,因此它尊重animation-delay
css属性。即使您完全删除了jQuery代码(如上所述),您的解决方案也应该可以工作。