CSS动画在不可见时仍然会发生吗?
我有一个元素作为加载指示器。它总是出现在我的页面上,并通过添加/删除一个改变其不透明度和z索引的类来显示/隐藏。元素包含使用CSS设置动画的图像 我担心这会对页面效率低下,因为当加载程序不在屏幕上时,动画可能仍在无形中发生 我尝试过的CSS动画在不可见时仍然会发生吗?,css,animation,Css,Animation,我有一个元素作为加载指示器。它总是出现在我的页面上,并通过添加/删除一个改变其不透明度和z索引的类来显示/隐藏。元素包含使用CSS设置动画的图像 我担心这会对页面效率低下,因为当加载程序不在屏幕上时,动画可能仍在无形中发生 我尝试过的 我这样做是为了使动画只在元素具有可见的类时才起作用,但这会导致一种不和谐的效果,因为在加载程序更改为淡出之前,一旦移除类,动画就会停止。向动画添加过渡似乎没有任何效果。虽然不确定元素隐藏时动画是否仍在元素上发生,但可以使用动画迭代计数在一定次数的迭代后结束动画
我这样做是为了使动画只在元素具有可见的类时才起作用,但这会导致一种不和谐的效果,因为在加载程序更改为淡出之前,一旦移除类,动画就会停止。向动画添加
过渡
似乎没有任何效果。虽然不确定元素隐藏时动画是否仍在元素上发生,但可以使用动画迭代计数
在一定次数的迭代后结束动画
- 使用
在不需要时隐藏加载程序李>class=“is hidden”
- 将
应用于加载程序,将微调器的隐藏时
从动画迭代计数
更改为,例如无限
5
。隐藏到.loader
)
是的。请参阅以下小提琴==>
css
@keyframes anim{
0%{margin-left:0;}
100%{margin-left:80%;}
}
@-webkit-keyframes anim{
0%{margin-left:0;}
100%{margin-left:80%;}
}
h3{
float:left;
position:absolute;
}
div{
visibility:hidden;
background:black;
width:50px;
height:50px;
float:left;
animation: anim 5s;
-webkit-animation: anim 5s infinite; /* Safari and Chrome */
}
setInterval(function() {
jQuery('h3').text('Margin is:'+ jQuery('div').css('margin-left'))
},1000);
html
<div id="div">
Div
</div>
<h3></h3>
^在h3中显示结果在删除visible类之前将其淡出如何?@PatsyIssa我可以这样做,但我尝试不使用JavaScript(除非它是绝对必要的)。感谢您完美且演示良好的解决方案:)作为旁白,我从来没有想过以您在示例中的方式构造加载微调器,但它非常酷。再次感谢!很好的测试。请注意,如果更改为display:none
,则h3不会更新。
setInterval(function() {
jQuery('h3').text('Margin is:'+ jQuery('div').css('margin-left'))
},1000);