gpt4 book ai didi

css - 使用无限循环链接 CSS 动画

转载 作者:技术小花猫 更新时间:2023-10-29 11:09:57 25 4
gpt4 key购买 nike

是否可以链接两个动画然后无限循环这个链?{|--ani1--|--ani1--|--ani1--|--ani2--|--ani2--|} x 循环

div {
width: 50px; height: 50px; border: 3px solid black;
animation: ani1 3s 0s 3, ani2 3s 9s 2;
/*animation-iteration-count: infinite;*/
}
@keyframes ani1 {
from { background: green; }
50% { background: red; }
to { background: green; }
}
@keyframes ani2 {
from { width: 100px; }
50% { width: 150px; }
to { width: 100px; }
}

在这里测试:http://jsfiddle.net/kQA6D/

最佳答案

简而言之,(可能有一些解决方法)

您的行 animation-count: infinte 当前正在为元素执行此操作:animation: ani1 3s 0s infinite, ani2 3s 9s infinite;。因此,由于声明的第一个动画的迭代次数为 infinite,因此永远不会达到第二个

最简单和最传统的方法是使用 javascript 和 animationEnd 来实现(我使用 Craig Buckler 的 PrefixedEvent function 但这不是必需的)

var elem = document.querySelectorAll("div")[0],
pfx = ["webkit", "moz", "MS", "o", ""];
function PrefixedEvent(element, type, callback) {
for (var p = 0; p < pfx.length; p++) {
if (!pfx[p]) type = type.toLowerCase();
element.addEventListener(pfx[p]+type, callback, false);
}
}
PrefixedEvent(elem, "animationend", function() { switchAnims(elem) });
function switchAnims(element) {
if(element.style.animationName = "ani1") {
element.style.animationName = "ani2";
} else {
element.style.animationName = "ani1";
}
}

jsFiddle (仅限webkit - 需要添加其他前缀)

否则,目前对于纯 CSS 修复,您必须将它们组合为一个动画。对你来说,这看起来像

@keyframes aniBoth {
0%, 16.666%, 33.333% { background: green; }
8.333%, 24.999%, 41.666% { background: red; }
50% { background: green; }
50.001% { background:white; width: 100px; }
75%, 100% { width: 100px; }
62.5%, 87.5% { width: 150px; }
}

jsFiddle (仅限webkit - 需要添加其他前缀)

关于css - 使用无限循环链接 CSS 动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20618110/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com