美文网首页
css 动画总结

css 动画总结

作者: 赵碧菡 | 来源:发表于2017-12-11 15:47 被阅读0次

一、2D、3D 转换 (transform)

让元素在一个坐标系统中变形

//  浏览器前缀
    -webkit-transform
    -moz-
    -ms-
    -o-
2D转换
  • translate(x,y) 平移
    transform:translate(100px,100px)   //  第二个参数可省略,默认为0
    transform:translateX(100px)      //   X轴
    transform:translateY(100px)      //   Y轴
    
  • rotate(180deg) 旋转
  • scale(w,h) 缩放
    transform:scale(2)  // 一个参数,等比例缩放 
    transform:scale(1,2)  宽放大一倍即不变,高度放大两倍
    transform:scaleX(2)
    transform:scaleY(2)
    
  • skew(50deg,50deg) 倾斜
    X 是水平方向,Y垂直方向 (元素得是块元素)
    //如果第二个参数省略,默认为0
    transform:skew(50deg,50deg)    // x 轴倾斜50deg,y轴倾斜50deg
    
    skewX(<angle>)按指定的角度沿X轴斜切变化,X轴方向平行不变,Y轴方向变切斜
    图片.png
    skewY(<angle>)按指定的角度沿Y轴斜切变化,Y轴方向平行不变,X轴方向变切斜
    图片.png
transform-origin

transform-origin 来对元素进行原点位置改变,默认是以元素中心位置
可以设置的属性值:left、right、top、bottom、center

transform-origin:left top;       // 左上角
3D转换
图片.png
  • rotateX(angle)

    rotateX方法指定对象在 X轴上的旋转角度(围绕 X轴旋转)。


    图片.png
  • rotateY(angle)

    rotateY方法指定对象在 Y轴上的旋转角度(围绕 Y轴旋转)。


    图片.png
  • rotateZ(angle)

    rotateZ方法指定对象在 Z轴上的旋转角度(围绕Z轴旋转),效果和 skew旋转一样

  • rotate3d(x,y,z,angle)

前三个参数分别表示旋转的方向x,y,z,第四个参数表示旋转的角度,参数不允许省略。

 rotate3d(1,0,1,45deg)     // 1 代表此方向旋转,0 代表此方向不旋转
  • translateZ(z)
  • translate3d(x,y,z)
扩展属性
  • transform-style 属性指定嵌套元素是怎样在三维空间呈现(3D环绕效果)。
    transform-style :flat | preserve-3d
    preserve-3d
    图片.png
    flat(默认)
    图片.png
  • perspective 属性(给父级设置)
    指定观察者与[z=0]平面的距离,使具有三维位置变换的元素产生透视效果。值越小里的越近,越大离的越远
    perspective :number | none

    图片.png
    图片.png
  • perspective-origin 属性,指定透视点的位置(给父级设置)
    perspective-origin : x-axis y-axis

     perspective-origin:top          // 俯视看  (从上往下看)
     perspective-origin:center/50%      // 平视角度看
     perspective-origin:bottom      //  仰视看(从下往上看)
    
  • backface-visibility 属性
    指定元素背面面向用户时是否可见
    backface-visibility : visible | hidden

实例效果
图片.png
<div>
    <div class="inner"></div>
    <div class="middle"></div>
    <div class="outer"></div>
    <div class="imooc"></div>
</div>
div {
         transform-style: preserve-3d;
         perspective: 500px;
         perspective-origin: bottom;
 }
div > .inner {  transform: rotateY(67deg)}
div > .middle {  transform: rotateX(45deg)}
div > .outer {  transform: rotateZ(45deg)}
div > .imooc { background: url(./img/imooc.png) no-repeat center center; }

二、过渡( transition)

允许css 的属性值在一定的时间区间平滑度过,在鼠标单击、获取焦点、被点击或对元素任何改变中触发并圆滑地以动画效果改变css 属性值。

  • transition

    transition属性是一个简写属性,用于设置四个过渡属性

    transition: property duration timing-function delay;
    transition: width 1s ease 2s;
    
  • transition-property

    设置过渡效果的 CSS 属性的名称,比如width、 color 、opacity等属性
    transition-property:none | all | property

    transition-property:width 
    
  • transition-duration

    检索或设置对象过渡的持续时间,规定完成过渡效果需要花费的时间

    transition-duration:1s
    
  • transition-timing-function

检索或设置对象中过渡的动画类型


图片.png
transition-timing-function:ease
  • transition-delay

检索或设置对象延迟过渡时间

ttransition-delay:2s

例子:当鼠标经过div时,宽度由100px变成200px,设置过渡效果

div{
  width:100px;
  transition:width 1s ease 2s 
  // 属性:宽,执行时间:1s,速度曲线:ease,延时:2s
}
div:hover{
   width:200px
}

如果属性设置成 all代表所有属性

三、动画 animation

animation:keyframe 名称,时间,速度曲线,延迟、播放的次数、direction

div{
  animation:mymove 5s infinite;
 }
@keyframes mymove {
    from{
        left:10px
     }
    to{
      left:100px
     }
}

兼容手机端需要加浏览器前缀

-webkit-animation:
@-webkit-keyframes  name{}
  • animation-name

    设置对象所应用的对象名称

  • animation-duration

    规定完成动画所花费的时间,以秒或毫秒计

  • animation-timing-function

    规定动画的速度曲线

    属性值: linear、ease、ease-in  、ease-out 等
    
  • animation-delay

    规定在动画开始之前的

  • animation-iteration-count

    规定动画应该播放的次数

    animation-iteration-count:n(1,2,3....)|infinite (无限循环)
    
  • animation-direction

    规定是否应该轮流反向播放动画,默认 normal

    animation-direction:alternate;
    
  • animation-fill-mode

    规定当动画不播放时(当动画完成或者动画有延迟未开始播放时),要应用到元素的样式。
    animation-fill-mode:none | forwards | backwards | both | initial | inherit
    参数说明:

    • none:默认值,不设置对象动画之外的状态
    • forwards:设置对象状态为动画结束时的状态
    • backwards:设置对象状态为动画开始的状态
    • both:设置对象为动画结束或开始的状态
  • animation-play-state

    指定动画是否正在运行或已暂停
    animation-play-state:paused | running
    参数说明:

    • pasued:指定暂停动画
    • running:默认值,指定正在运行的动画
will-change

提前通知浏览器元素将要做什么动画,让浏览器提前准备合适的优化设置
增强页面渲染性能

参数说明:

  • auto:此关键字表示没有特定的意图,适用于它通常所做的任何启发式和优化。
  • scroll-position:表示将要改变元素的滚动位置
  • contents:表示将要改变元素的内容
  • <custom-ident>:明确指定将要改变的属性与给定的名称
  • <animateable-feature>:可动画的一些特征值,比如 left、top、margin等。

使用

-webkit-will-change:transform    //  属性名称
-moz-will-change:transform

相关文章

  • 前端开发入门到实战:动画优雅降级的简单总结

    CSS动画优雅降级的简单总结 CSS动画相关属性 transition:兼容性 transform 3D:兼容性 ...

  • CSS3 动画属性

    概述 思维导图总结一下 CSS3 的动画属性 内容 参考文章 CSS动画简介——阮一峰

  • css 动画总结

    一、2D、3D 转换 (transform) 让元素在一个坐标系统中变形 2D转换 translate(x,y) ...

  • CSS动画总结

    七、CSS动画 1、过渡 transition:过渡,通过过渡可以指定一个属性发生变化时的切换方式。通过过渡可以创...

  • CSS动画总结

    1. 浏览器渲染原理 浏览器渲染过程 根据HTML构建HTML树(DOM) 根据CSS构建CSS树(CSSOM) ...

  • CSS3动画简要总结

    主要总结一下CSS3动画中这几块:transition(过渡),animation(动画),transform转换...

  • CSS-3D知识

    1.CSS动画 1.1 CSS动画属性-animation animation:为CSS动画属性,使用该属性可以替...

  • Css动画 小球横移

    学习css 动画,建立小球左右横移的动画原料:html5 Css3html CSS css 动画属性介绍 其中an...

  • 网页高级知识点(三)

    CSS3 transition动画 CSS3 transform变换 CSS3 animation动画

  • 有用的Vue第三方库

    Animate.css - CSS动画库 Velocity.js - JS动画库 TweenJS - 状态过渡动画...

网友评论

      本文标题:css 动画总结

      本文链接:https://www.haomeiwen.com/subject/ptisixtx.html