CSS3--animation属性复合

本文详细介绍了一个使用HTML和CSS实现的三维旋转动画案例。通过设置不同的背景图片和关键帧动画,三个不同层级的div元素分别围绕X轴、Y轴和Z轴进行无限循环的旋转,营造出立体视觉效果。文章深入解析了动画的实现原理,包括如何利用transform-style属性创建3D空间,以及如何定义关键帧动画实现平滑过渡。

code:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Animation</title>
<style type="text/css">
body { background: #abcdef; }
div { position: relative; width: 760px; height: 760px; margin: auto;
    -webkit-transform-style: preserve-3d;
       -moz-transform-style: preserve-3d;
        -ms-transform-style: preserve-3d;
         -o-transform-style: preserve-3d;
            transform-style: preserve-3d;
}
div > div { position: absolute; top: 0; right: 0; bottom: 0; left: 0; width: 100%; height: 100%; margin: auto; background-repeat: no-repeat; background-position: center; }
div > .inner { background-image: url(images/circle_inner.png);
    -webkit-animation: circle_inner linear 10s infinite;
            animation: circle_inner linear 10s infinite;
}
div > .middle { background-image: url(images/circle_middle.png);
    -webkit-animation: circle_middle linear 10s infinite;
            animation: circle_middle linear 10s infinite;
}
div > .outer { background-image: url(images/circle_outer.png);
    -webkit-animation: circle_outer linear 10s infinite;
            animation: circle_outer linear 10s infinite;
}
div > .imooc { background-image: url(images/imooc.png); }
@keyframes circle_inner {
    from { transform: rotateX(0deg);   }
    to   { transform: rotateX(360deg); }
}
@keyframes circle_middle {
    from { transform: rotateY(0deg);   }
    to   { transform: rotateY(360deg); }
}
@keyframes circle_outer {
    from { transform: rotateZ(0deg);   }
    to   { transform: rotateZ(360deg); }
}
</style>
</head>
<body>
<div>
    <div class="inner"></div>
    <div class="middle"></div>
    <div class="outer"></div>
    <div class="imooc"></div>
</div>
</body>
</html>

 

### CSS3 `animation` 属性使用教程 #### 一、常见动画属性简介 CSS3 提供了一系列用于创建复杂动画效果的属性。其中最核心的是 `animation` 组合属性,它能够一次性设定多个子属性来控制动画的行为[^2]。 - **`animation-name`**: 定义应用到目标元素上的关键帧名称。 - **`animation-duration`**: 设置完成整个动画循环所需的时间长度,默认单位为秒(s),也可以使用毫秒(ms)[^4]。 - **`animation-timing-function`**: 描述动画的速度曲线,常见的有线性(`linear`)、缓入/缓出(`ease-in`, `ease-out`, `ease-in-out`)等选项[^1]。 - **`animation-delay`**: 指定动画开始前等待的时间间隔。 - **`animation-iteration-count`**: 控制动画重复播放次数;可设为无限次(`infinite`)。 - **`animation-direction`**: 决定了每次迭代的方向变化模式,比如正向运行还是交替反向执行。 - **`animation-fill-mode`**: 影响动画之外的状态,在未启动或结束后如何影响被选中的元素样式[^3]。 #### 二、代码示例 - 创建简单的淡入淡出效果 下面是一个利用上述提到的各种参数组合而成的例子: ```css /* 定义名为 &#39;fade&#39; 的 @keyframes */ @keyframes fade { from { opacity:0; } to { opacity:1; } } /* 应用该动画至特定类名 .example 上 */ .example { /* 单独指定各子属性 */ animation-name: fade; animation-duration: 2s; animation-timing-function: ease-in; animation-delay: 1s; animation-iteration-count: infinite; animation-direction: alternate; animation-fill-mode: both; /* 或者采用简写的复合形式 */ /* animation: fade 2s ease-in 1s infinite alternate both; */ } ``` 此段代码实现了当页面加载完成后的一秒钟延迟后,`.example` 类下的HTML元素将以两秒内逐渐变得完全可见的方式不断切换透明度状态,并且在动画前后保持最终的效果显示。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值