CSS3动画

简介: CSS3动画

在CSS3中新增了一个很有意思的东西,那就是动画,有了动画我们可以做很多的事情,让我为大家介绍一下动画吧!

本篇文章关于介绍动画,利用小球移动为你们介绍一下动画

默认样式:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>动画</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        .box {
            /* 绝对定位,子绝父相 */
            position: relative;
            width: 1000px;
            height: 100px;
            border: 1px solid black;
            margin: 100px auto;
        }
        .ball {
            width: 100px;
            height: 100px;
            border-radius: 50%;
            background-color: pink;
            /* 绝对定位,接下来用定位来实现移动 */
            position: absolute;
            top: 0;
            left: 0;
        }
    </style>
</head>
<body>
    <div class="box">
        <!-- 小球 -->
        <div class="ball"></div>
    </div>
</body>
</html>

在我们使用动画前,我们需要定义关键帧,使用的语法:

@keyframes 名称 { }

/* 定义关键帧 */
        @keyframes move {
            /* 第一种方法,from to */
            /* from {
                left:0;
            }
            to {
                left: 900px;
            } */
            /* 第二种方法,百分比的形式 */
            /* 0% {
                left:0;
            }
            100%{
                left: 900px;
            } */
        }

动画的使用语法与含义:

语法 含义
animation-name 指定要绑定到选择器的关键帧的名称
animation-duration 动画指定需要多少秒或毫秒完成
animation-timing-function 设置动画将如何完成一个周期
animation-delay 设置动画在启动前的延迟间隔
animation-iteration-count 定义动画的播放次数
animation-direction 指定是否应该轮流反向播放动画
animation-fill-mode 规定当动画不播放时(当动画完成时,或当动画有一个延迟未开始播放时),要应用到元素的样式
animation-play-state 指定动画是否正在运行或已暂停

使用动画让小球动起来

/* 给小球定义关键帧 */
         @keyframes move {
            0% {
                left:0;
            }
            100%{
                left: 900px;
            }
        }

跟着这一步步来自己动手试试吧,看只能看的懂理论,还是得要实践

一、animation-name

我们把名称给到我们小球的选择器当中

animation-name: move;

定义了动画名称还是做不出效果的所以我们用到了animation-duration

二、 animation-duration

动画指定需要多少秒或毫秒完成

单位使用s(秒)

animation-duration: 2s;

这样我们的小球就移动起来了,不过会有一个问题,但我们打开页面或者刷新页面的时候,动画就已经执行起来了,会闪现一段路程,所以我们要使用到延迟时间animation-delay

三、animation-delay

我们给小球添加延迟时间

/* 延迟2秒开始,单位用s */
animation-delay: 2s;

这样就解决了当我们页面还没加载完就开始执行了动画

四、animation-timing-function

是不是在尝试的过程中感觉小球滚动的速度有点奇特,一下慢一下快又一下慢的,这是animation-timing-function的属性值导致的,默认值是ease

属性值 简述
ease 默认 动画以低速开始,然后加快,在结束前变慢
ease-in 动画以低速开始
ease-out 动画以低速结束
ease-in-out 动画以低速开始和结束
linear(常用) 动画从头到尾的速度是相同的(匀速)
steps 指定了时间函数中的间隔数量( 步长 )

演示效果:

我们把小球的速度改成匀速

animation-timing-function: linear;

五、animation-iteration-count

定义动画播放的次数

可以使用number数字

我们想让动画执行2次

animation-iteration-count: 2;

在这当中我们有一个十分常用的属性

infinite(无限的)

这个属性可以反复执行动画

animation-iteration-count: infinite;

六、animation-direction

动画播放的方向

属性值 简述
normal 默认值 动画按正常播放
reverse 动画反向播放
alternate 动画在奇数次(1、3、5…)正向播放,在偶数次(2、4、6…)反向播放
alternate-reverse 动画在奇数次(1、3、5…)反向播放,在偶数次(2、4、6…)正向播放

在使用alternate与alternate-reverse之前,我们需要让动画无限的播放或者是播放2次以上

animation-direction:alternate;

七、animation-fill-mode

属性 简述
backwards 动画执行完毕后回到最初的位置
forwards 动画执行完毕后停在最后一帧不动
animation-fill-mode: forwards;

八、animation-play-state

指定动画是否正在运行或已暂停

我用:hover为大家演示一下,不和其他属性一样写在一起

.ball:hover {
  animation-play-state: paused;
}

注意看鼠标

代码总结:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>动画</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        .box {
            /* 绝对定位,子绝父相 */
            position: relative;
            width: 1000px;
            height: 100px;
            border: 1px solid black;
            margin: 100px auto;
        }
        .ball {
            /* 绝对定位,接下来用定位来实现移动 */
            position: absolute;
            top: 0;
            left: 0;
            width: 100px;
            height: 100px;
            border-radius: 50%;
            background-color: pink;
            /* 动画名称 */
            animation-name: move;
            /* 所需时间 */
            animation-duration: 2s;
            /* 延迟时间 */
            animation-delay: 2s;
            /* 运动曲线 */
            animation-timing-function: linear;
            /* 定义动画播放的次数 */
            animation-iteration-count: infinite;
            /* 动画播放方向 */
            /* animation-direction:alternate; */
            /* 最后一帧停止不动 */
            /* animation-fill-mode: forwards; */
        }
        /* 鼠标经过小球停止,移出继续动 */
        .ball:hover {
            animation-play-state: paused;
        }
        /* 给小球定义关键帧 */
        @keyframes move {
            0% {
                left: 0;
            }
            100% {
                left: 900px;
            }
        }
    </style>
</head>
<body>
    <div class="box">
        <!-- 小球 -->
        <div class="ball"></div>
    </div>
</body>
</html>

九、复合属性(常用)

我们可以直接使用animation

animation: 动画的名称 时间 运动曲线 开始时间 播放次数 是否反向播放 是否运用结束的样式 动画是否运行或暂停;

复合属性简写:

/* 要使用到forwards需要不无限循环 */
animation: move 2s 2s linear infinite alternate;

感谢大家的阅读,本人文笔有限,如有错误的地方,可以向我指出,感谢大家!

相关文章
|
2月前
|
机器学习/深度学习 前端开发 JavaScript
|
27天前
纯css3实现的百分比渐变进度条加载动画源码
纯css3实现的百分比渐变进度条加载动画特效源码
53 31
|
2月前
|
前端开发 搜索推荐 UED
实现 CSS 动画效果的兼容性
【10月更文挑战第16天】实现 CSS 动画效果的兼容性需要对不同浏览器的特性有深入的了解,并采取适当的策略和方法。通过不断的实践和优化,你可以在各种浏览器上创造出流畅、美观且兼容的动画效果,为用户带来更好的体验。在实际开发中,要密切关注浏览器的发展动态,及时掌握最新的兼容性技巧和解决方案,以确保你的动画设计能够在广泛的用户群体中得到良好的呈现。
113 58
|
12天前
|
Web App开发 移动开发 JavaScript
纯CSS3+SVG实现的节日庆祝五彩纸屑动画效果源码
这是一款基于纯CSS3+SVG实现的节日庆祝五彩纸屑动画效果源码。画面中左下角是一个圆锥形礼炮卡通效果,呈现出节日庆祝时礼花爆破、五彩纸屑纷飞的动画特效。整体动画效果采用纯css3+svg实现,没有引入任何外部图形或js脚本元素。建议使用支持HTML5与css3效果较好的火狐(Firefox)或谷歌(Chrome)等浏览器预览本源码。
30 6
|
22天前
|
前端开发 JavaScript UED
CSS滚动效果和视差滚动的原理、应用及其对用户体验的影响。从平滑滚动到元素跟随,再到滚动触发动画
本文探讨了CSS滚动效果和视差滚动的原理、应用及其对用户体验的影响。从平滑滚动到元素跟随,再到滚动触发动画,这些效果增强了页面的吸引力和互动性。视差滚动通过不同层次元素的差异化移动,增加了页面的深度感和沉浸感。文章还讨论了实现方法、性能优化及案例分析,旨在为设计师和开发者提供实用指导。
50 7
|
27天前
CSS3制作的聚光灯下倒影文字选装动画特效源码
CSS3聚光灯下倒影文字特效是一段基于CSS3实现的聚光灯下带倒影的文字旋转动画效果代码,具有真实的视觉感,同时文字还会在旋转过程中显示出灯光的反射效果,很有意思,欢迎对此段代码感兴趣的朋友前来下载使用。
29 6
|
1月前
|
移动开发 前端开发 JavaScript
除了 CSS3,还有哪些技术可以实现动画效果?
除了 CSS3,还有哪些技术可以实现动画效果?
53 5
|
27天前
纯css3加载loading发光变色动画代码
纯css3加载loading发光变色动画特效代码是一款基于css3 keyframes属性实现的发光变色圆点串联旋转loading加载动画
22 2
|
28天前
|
Web App开发 前端开发 iOS开发
CSS加载动画大全 126种
CSS加载动画大全是一个css Loaders加载动画特效汇总,一共包含126种加载动画效果,不同样式不同图案,简单实用,一览包含所有,会让你在等待的过程中,体验视觉盛宴,给用户不一般的加载体验,欢迎下载试试!代码适用浏览器:搜狗、360、FireFox(建议)、Chrome、Safari、Opera、傲游、世界之窗,是一款不错的的特效插件,希望大家喜欢!
26 2
|
29天前
|
JavaScript 前端开发
CSS3 动画和 JavaScript 动画的性能比较
具体的性能表现还会受到许多因素的影响,如动画的复杂程度、浏览器的性能、设备的硬件条件等。在实际应用中,需要根据具体情况选择合适的动画技术。