transition-property 过渡属性 all|[attr]
transition-duration 过渡时间
transition-delay 延迟时间
transition-timing-function 运动类型html
webkit内核下:
ele.addEventListener('webkitTransitionEnd',function(){},false);
标准浏览器下:
ele.addEventListener(‘transitionend',function(){},false)
transition 执行次数问题web
transform
浏览器
rotate() 旋转函数缓存
skew() 倾斜函数函数
scale() 缩放函数 默认值是1动画
translate() 位移函数3d
关键帧---@keyframescode
@keyframes 动画名称 { 动画状态 }
transform-style : flat | preserve-3d (3D空间展现)orm
perspective 透视效果
transform:perspective(800px) 直接做用在子元素上
perspective-origin 透视点位置
transform 新增函数htm
【timing-function steps (<number_of_steps>,`<direction>`)】
steps()是一个timing function,容许咱们将动画或者过渡分割成段,而不是从一种状态持续到另外一种状态的过渡。这个函数有两个参数;
第一个参数是一个正值,指定咱们但愿动画分割的段数;
第二个参数定义了这个要点 在咱们的@keyframes中申明的动做将会发生的关键,这个值是可选的,在没有传递参数时,默认为”end”;
【”start”】表示一个左--持续函数,在动画开始时,动画的第一段将会立刻完成。以左侧端点为起点,当即跳到第一个step的结尾处。它会当即跳到第一段的结束而且保持这样的状态直到第一步的持续时间结束。后面的每一帧都将按照此模式来完成动画;
【”end”】表示一个右--持续函数。动画执行时,在每一帧里,动画保持当前状态直到这一段的持续时间完成,才会跳到下一步的起点,后面的每一帧都按照这个模式来进行,在最后一帧的起点,等到这一帧的持续时间结束,整个动画的执行也已经结束,执行动画的元素来不及跳到这一帧的终点,直接回到了整个动画起点,开始了第二次动画。每一个选择本质上从一个不一样的面移动这个元素而且将产生一个不一样的位置在这个相同的动画里;
原理:使用一张含有多帧静态画面的图片,经过切换 background-position 使其变为连续的动画
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> </head> <style> .box1 { width: 100px; height: 100px; line-height:100px; text-align: center; margin:20px 0; font-size:20px; color:#fff; -webkit-animation: animation1 6s steps(3, start) infinite; } .box2 { width: 100px; height: 100px; line-height:100px; text-align: center; margin:20px 0; font-size:20px; color:#fff; -webkit-animation: animation2 6s steps(3, end) infinite; } @-webkit-keyframes animation1{ from { background-color: red; } to { background-color: blue; } } @keyframes animation1{ from { background-color: red; } to { background-color: blue; } } @-webkit-keyframes animation2{ from { background-color: red; } to { background-color: blue; } } @keyframes animation2{ from { background-color: red; } to { background-color: blue; } } </style> <body> <div class="box1">start</div> <div class="box2">end</div> </body> </html>