我遇到了内存问题,使用-webkit-animation
.
原则
我想为渐变背景设置动画。由于它们在关键帧中不可动画化,因此我将每个背景放在不同的div
中,并且我正在使用这些div
不透明度和z-index
:
.item01
从 0% 到 4% 可见,从 0% 开始淡出.item02
从 0% 到 8% 可见,在 4% 时开始淡出(及以下.item01
).item03
.item02
从 0% 到 12% 可见,在 8%(及以下)开始淡出- ...
问题
只有第 16 个动画有效,第 17 个我们只看到一个空白 div,直到所有动画重新启动。
我注意到我在使用-moz-animation
Firefox 时没有问题,这个问题只发生在 Chrome 上,使用-webkit-
.
根据您的视口大小,您将能够看到更多或更少的动画。
代码
HTML
<div class="item item-01">ITEM 01</div>
<div class="item item-02">ITEM 02</div>
<div class="item item-03">ITEM 03</div>
...
CSS
.item {
position: absolute;
top: 0; left: 0;
width: 100%; height: 100%;
opacity: 1;
}
.item-01 {
background: red;
z-index: 100;
-webkit-animation: item01 30s linear infinite;
}
.item-02 {
background: blue;
z-index: 96;
-webkit-animation: item02 30s linear infinite;
}
.item-03 {
background: red;
z-index: 92;
-webkit-animation: item03 30s linear infinite;
}
...
@-webkit-keyframes item01 { 0%, 100% {opacity: 1;} 4%, 99.999% {opacity: 0;} }
@-webkit-keyframes item02 { 4%, 100% {opacity: 1;} 8%, 99.999% {opacity: 0;} }
@-webkit-keyframes item03 { 8%, 100% {opacity: 1;} 12%, 99.999% {opacity: 0;} }
...
出于示例目的,我将渐变背景替换为简单的红色/蓝色背景。
有什么方法可以让这段代码工作吗?
编辑
我更新了我的问题,按照我最近的发现:
- 显示的动画数量取决于您的操作系统(Ubuntu 似乎比 Win7 有更好的结果)
- 显示的动画数量取决于您的视口大小