CSS动画与交互

动画:animation 属性和 transition 属性



@keyframes mykf {
  from { top: 0; transition:top ease}
  50% { top: 30px;transition:top ease-in }
  75% { top: 10px;transition:top ease-out }
  to { top: 0; transition:top linear}
}

div
{
    animation:mykf 5s infinite;
}

animation 分成六个部分:

animation-name 动画的名称,这是一个 keyframes 类型的值(@ key-frameskeyframes 产生一种数据,用于定义动画关键帧。);

animation-duration 动画的时长;

animation-timing-function 动画的时间曲线;(三次贝塞尔)

animation-delay 动画开始前的延迟;

animation-iteration-count 动画的播放次数;

animation-direction 动画的方向。

语法:

animation: name duration timing-function delay iteration-count direction;
animation-duration: time;

描述
time规定完成动画所花费的时间。默认值是 0,意味着没有动画效果。
animation-timing-function
描述
linear动画从头到尾的速度是相同的。
ease默认。动画以低速开始,然后加快,在结束前变慢。
ease-in动画以低速开始。
ease-out动画以低速结束。
ease-in-out动画以低速开始和结束。
cubic-bezier(n,n,n,n)在 cubic-bezier 函数中自己的值。可能的值是从 0 到 1 的数值。
animation-delay: time;
animation-direction: normal|alternate;
animation-iteration-count: n|infinite;

描述
n定义动画播放次数的数值。
infinite规定动画应该无限次播放。

transition有四个部分:(这里的四个部分,可以重复多次,指定多个属性的变换规则

transition-property 要变换的属性;

transition-duration 变换的时长;

transition-timing-function 时间曲线;

transition-delay 延迟。

transition-property: none|all| property;

描述
none没有属性会获得过渡效果。
all所有属性都将获得过渡效果。
property定义应用过渡效果的 CSS 属性名称列表,列表以逗号分隔。

transition-duration: time;

transition-timing-function: linear|ease|ease-in|ease-out|ease-in-out|cubic-bezier(n,n,n,n);

描述
linear规定以相同速度开始至结束的过渡效果(等于 cubic-bezier(0,0,1,1))。
ease规定慢速开始,然后变快,然后慢速结束的过渡效果(cubic-bezier(0.25,0.1,0.25,1))。
ease-in规定以慢速开始的过渡效果(等于 cubic-bezier(0.42,0,1,1))。
ease-out规定以慢速结束的过渡效果(等于 cubic-bezier(0,0,0.58,1))。
ease-in-out规定以慢速开始和结束的过渡效果(等于 cubic-bezier(0.42,0,0.58,1))。
cubic-bezier(n,n,n,n)在 cubic-bezier 函数中定义自己的值。可能的值是 0 至 1 之间的数值。

transition-delay: time;

作为了解:

animation 属性和 transition 属性背后的原理:贝塞尔曲线

贝塞尔曲线是一种插值曲线,它描述了两个点之间差值来形成连续的曲线形状的规则

一个量(可以是任何矢量或者标量)从一个值到变化到另一个值,如果我们希望它按照一定时间平滑地过渡,就必须要对它进行插值。

此文章为4月Day3学习笔记,内容来源于极客时间重学前端》,推荐该课程。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值