浅谈CSS3动画

前言:特效无疑是炫酷的一个东西,很多网页中都存在这种特效,这也就是我们今天要看的动画.

一.动画

所谓的动画是使元素从一种样式逐渐变化为另一种样式的效果,就是通过CSS代码来对我们需要产生特效的元素的样式进行修改。我们会使用到keyframes来进行动画的操作。

二.keyframes

1.定义:

keyframes:关键帧;格式为:@keyframes animationname {keyframes-selector {css-styles;}}(animationname为动画起的名称,是必需的),在一个 @keyframes 代码块里,包含着一系列的CSS规则,统称为 keyframes。 一个 keyframe 定义了一个完整动画里某一时刻的一种动画样式。动画绘制引擎会连贯平滑的实现各种样式间的转换。我们的状态有:一个是动画的起始状态( “from” 代码块) 和终止状态 ( “to” 代码块)或者可以定义百分比来进行动画,0%-100%之间的数值(from为0%,to为100%),某一个百分比之间的css样式就会在某一过程进行执行

 @keyframes name{
 			 from{}
			 to{}
}

或者

 @keyframes name{
 			 0%{}
 			...%
			 100%{}
}

2.绑定事件(animation):

当然我们定义好动画后并没有结束,我们需要给某一个元素进行动画事件的绑定,否则这个动画就只是个摆设而已,绑定动画我们使用:animation
animation:顾名思义为动画的意思,其中的参数有:

参数解释
name动画名称,是必需的
duration动画时间,是必需的
timing-function运动曲线,有linear、ease、ease-in、ease-ou、ease-in-out、steps()(步长)
delay动画开始的时间
iteration-count播放次数,有infinite(无限循环)
direction是否反向:alternate-reverse(倒着播放)
fill-mode起始与结束状态
play-state播放与暂停

分开写法:

    animation-name: ;
    animation-duration: ;
    animation-delay: ;
    animation-iteration-count: ;
    animation-direction: ;
    animation-timing-function: ;
    animation-play-state: ;
    animation-fill-mode: ;

3.复合写法:

annimation:name durtaion timing-function delay iteration-count direction fill-mode play-state;

我们需要注意的一点就是:在动画中name(动画名称)和durtaion(时间)是必需的。

三.举例

我们实现一个div围绕屏幕一周移动的效果:
代码:

<style>
        div {
            width: 200px;
            height: 200px;
            background-color: pink;
            animation: move 3s linear infinite;
        }
        
        @keyframes move {
            0% {
                background-color: greenyellow;
            }
            25% {
                transform: translate(1000px, 0);
                background-color: bisque;
            }
            50% {
                transform: translate(1000px, 500px);
                background-color: khaki;
            }
            75% {
                transform: translate(0, 500px);
                background-color: skyblue;
            }
            100% {
                transform: translate(0, 0);
                background-color: cadetblue;
            }
        }
    </style>
</head>
<body>
    <div></div>
</body>

效果图:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木偶☜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值