本篇文章的动画效果及其代码来自于老姚
css动画实现效果
css代码如下
animation @keyframes与box-shadow属性解读
animation属性控制着动画实现的整体流程
@keyframes:通过在动画序列中定义关键帧(或waypoints)的样式来控制CSS动画序列中的中间步骤。这比转换更能控制动画序列的中间步骤。
@keyframes实现的方式包括
- form -> to形式
@keyframes move { //move为animation-name属性设置
from {
margin-left: 100%;
width: 300%;
}
to {
margin-left: 0%;
width: 100%;
}
}
- 百分比形式
@keyframes identifier {
0% { top: 0; left: 0; }
30% { top: 50px; }
68%, 72% { left: 50px; }
100% { top: 100px; left: 100%; }
}
- 混合形式
@keyframes important1 {
from { margin-top: 50px; }
50% { margin-top: 150px !important; } /* 忽略 */
to { margin-top: 100px; }
}
box-shadow:以由逗号分隔的列表来描述一个或多个阴影效果。该属性可以让几乎所有元素的边框产生阴影
//语法实例
box-shadow: h-shadow v-shadow blur spread color inset;
//代码示例
/* x偏移量 | y偏移量 | 阴影模糊半径 | 阴影扩散半径 | 阴影颜色 */
box-shadow: 2px 2px 2px 1px rgba(0, 0, 0, 0.2);
inset
如果没有指定inset,默认阴影在边框外,即阴影向外扩散。使用 inset 关键字会使得阴影落在盒子内部,这样看起来就像是内容被压低了。 此时阴影会在边框之内 (即使是透明边框)、背景之上、内容之下。
offset-x、offset-y
用来设置阴影偏移量。x,y 是按照数学二维坐标系来计算的,只不过y垂直方向向下。
offset-x:设置水平偏移量,正值阴影则位于元素右边,负值阴影则位于元素左边。
offset-y:设置垂直偏移量,正值阴影则位于元素下方,负值阴影则位于元素上方。如果两者都是0,那么阴影位于元素后面。这时如果设置了blur-radius或spread-radius则有模糊效果。需要考虑 inset
blur-radius:值越大,模糊面积越大,阴影就越大越淡。不能为负值。默认为0,此时阴影边缘锐利。
spread-radius:取正值时,阴影扩大;取负值时,阴影收缩。默认为0,此时阴影与元素同样大。需要考虑 inset 。
animation属性整理如下
最后再次感谢老姚的代码分享