css3新增--动画

动画是CSS3中具有颠覆性的特征之一,可通过设置多个节点来精确控制一个或一组动画,常用来实现复杂的动画效果

动画通过 @keyframes 指定动画序列,通过百分比将动画序列分割成多个节点,在各节点中分别定义各属性。然后通过 animation 将动画应用于相应元素。

@keyframes 语法:

@keyframes 动画名{
    0%/from {
        动画样式起始状态
    }
    任意百分比 {
        css code ...
    }
    100%/to {
        动画样式终止状态
    }
}

关键属性

  • animation-name 动画名称(必填)

  • animation-duration 动画持续时间(必填)

  • animation-timing-function

    • linear/ease/ease-in/ease-out/ease-in-out/cubic-bezier(n,n,n,n): 特定的贝塞尔曲线类型
  • animation-delay 动画延迟(只是第一次)

  • animation-iteration-count 重复次数

    • 1/2/3/4…

    • infinite 无限次

  • animation-direction 动画是否重置后再开始播放

    • normal 动画每次都从 0% 的状态开始执行

    • alternate 动画从起点开始,往复运动

    • alternate-reverse 动画从终点开始,往复运动

  • animation-fill-mode 动画执行完毕后状态

    • forwards 当动画完成后,保持最后一个属性值(在最后一个关键帧中定义) - 未实现,当前效果类似于 both

    • backwards 在 animation-delay 所指定的一段时间内,在动画显示之前,应用开始属性值(在第一个关键帧中定义)。

    • both 设置对象状态为动画结束或开始的状态,结束时状态优先

简写语法

.ele {
    animation: name duration timing-function delay iteration-count direction fill-mode;
}

name duration 是必填属性,其它的属性是都可选属性。

动画状态

animation-play-state 动画状态(running 执行 和 paused 暂停)

帧动画

在应用 CSS3 动画时,有个控制时间的属性 timing-function 。它的取值中除了常用到的 贝塞尔曲线 以外,还可以是 steps() 函数

steps(n,start/end)

​ 第一个参数 number 为指定的间隔数,即把动画分为 n 步阶段性展示

​ 第二个参数默认为 end,设置最后一步的状态,start 为结束时的状态,end 为开始时的状态(不用记,第二个参数不写就行)

注意: n 必须是正整数

动画监听

ele.addEventListener("animationend", myStartFunction);

动画的事件:

  • animationstart - CSS 动画开始后触发

  • animationiteration - CSS 动画重复播放时触发

  • animationend - CSS 动画完成后触发

过渡监听

// 过渡只有监听结束的方法,  start 和 run 的监听方法在开发状态
d2.addEventListener('transitionstart',function () {
    console.log('过渡开始...');
})
d2.addEventListener('transitionrun', function() {
    console.log("过渡执行中");
});
d2.addEventListener('transitionend',function () {
    console.log('过渡结束...');
})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值