请问如何给一个div加载2个动画用css3
以下为补充回答
我有一个div 刚开始opacity从0到1;然后使它做一个来回滑动的效果;这应该是2个分别的动画
答:
这虽然是两个动画,但无需用多个 animation
一个就可以实现了
示例代码
@keyframes demo{
/* 可以指定多个属性动画 */
0% { opacity: 0; transform: translate(0); }
100% { opacity: 1; transform: translate(60px); }
}
div{
animation: demo 1s ease 1 both;
}
先说结论,如果我没有记错,可以同时加载两个不同名称的animation,
animation-name: 用,隔开两个不同的animation名称即可
链接: https://www.w3.org/TR/css3-an...
再说你的需求。
div 刚开始opacity从0到1;然后使它做一个来回滑动的效果;这应该是2个分别的动画
这个可以写成一个动画,别忘了 animation动画可以设置%的动画执行效果
@keyframes IDENT {
0% {
opacity: 0
}
50% {
opacity: 1;
left: 0;
}
100% {
opacity: 1;
left: 100;
}
}
大概就这个意思, 而且一个可以控制顺序和执行时间比例,两个你需要用到 delay属性,控制不好的话,容易卡顿。
可以同时加载放大和翻转动画效果
/* 放大+翻转 */
@keyframes flip
{
0% {
-webkit-transform: scale(0) rotateY(0deg) ;
transform: scale(0) rotateY(0deg) ;
}
100% {
-webkit-transform: scale(1) rotateY(360deg) ;
transform: scale(1) rotateY(360deg) ;
}
}
@-webkit-keyframes flip /* Safari and Chrome */
{
0% {
-webkit-transform: scale(0) rotateY(0deg) ;
transform: scale(0) rotateY(0deg) ;
}
100% {
-webkit-transform: scale(1) rotateY(360deg) ;
transform: scale(1) rotateY(360deg) ;
}
}
前面回答的都叫别人把动画写成一个,万一人家不想写成一个,想写动画效果的class分解怎么搞?
//明确的告诉提问者,不可以同时使用两个不同的keyframe-name.
更正一下,可以叠加不同的keyframe-name,只不过是要单独写出来。比如:animation:1s infinite alternate;//这里没有申明关键帧名
animation-name:spark, flow;//同时浮动和闪动
我不知道你的这个动画是同时进行的动画还是什么,假如你有一个元素需要边放大边旋转,你可以用:before来给他们设置动画,这样子可以让动画同时进行,若是要不同时,那就都写在animation里,用逗号隔开就是了
2 回答784 阅读✓ 已解决
4 回答764 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
2 回答952 阅读✓ 已解决
2 回答2.5k 阅读
2 回答1.5k 阅读
1 回答956 阅读✓ 已解决
https://jsfiddle.net/ccchangk...
第一一秒的透明度动画,第二是延迟一秒的一秒循环位移动画