学习CSS:animation属性

788 阅读2分钟

本篇文章的动画效果及其代码来自于老姚

css动画实现效果

css代码如下

animation @keyframes与box-shadow属性解读

animation属性控制着动画实现的整体流程

animation
文章底部有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属性整理如下

最后再次感谢老姚的代码分享