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;

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

相关文章
|
前端开发 JavaScript
CSS 过渡和动画
CSS过渡和动画是用于为网页元素添加动态效果的两种重要技术
746 143
|
自然语言处理 前端开发 JavaScript
用 通义灵码 一键生成“水波纹按钮”,连 CSS 动画都不用自己写了!
通义灵码是一款智能编程辅助工具,它可以根据自然语言指令自动生成高质量的代码。例如,只需输入“生成一个按钮,点击时带水波纹动画,模拟 Material Ripple 效果”,它就能生成具备完整交互逻辑、CSS 动画和良好性能的按钮组件。不仅如此,它还支持拓展功能,如长按触发提示、添加图标等,并能自动优化样式适配不同场景。通过通义灵码,开发者可以大幅提升效率,专注于创意实现,而不必纠结于繁琐的代码细节。
|
10月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
Animation属性 css3为Animation动画提供的几个属性如下: 属性名 属性值 animation-name 指定动画名称,该属性指定一个已有的关键帧定义。 animation-duration 指定动画持续时间。 animation-timing-funtion 指定动画变化速度。 animation-delay 指定动画延迟多长时间才开始执行。 animation-iteration-count 指定动画的循环执行次数。 animation:这是一个复合属性。
589 3
|
机器学习/深度学习 前端开发 JavaScript
CSS动画知识点
CSS动画知识点
|
JavaScript 前端开发
CSS3 动画和 JavaScript 动画的性能比较
具体的性能表现还会受到许多因素的影响,如动画的复杂程度、浏览器的性能、设备的硬件条件等。在实际应用中,需要根据具体情况选择合适的动画技术。
535 154
|
移动开发 前端开发 JavaScript
除了 CSS3,还有哪些技术可以实现动画效果?
除了 CSS3,还有哪些技术可以实现动画效果?
594 63
css3 svg制作404页面动画效果HTML源码
css3 svg制作404页面动画效果HTML源码
329 34
|
前端开发 搜索推荐 UED
实现 CSS 动画效果的兼容性
【10月更文挑战第16天】实现 CSS 动画效果的兼容性需要对不同浏览器的特性有深入的了解,并采取适当的策略和方法。通过不断的实践和优化,你可以在各种浏览器上创造出流畅、美观且兼容的动画效果,为用户带来更好的体验。在实际开发中,要密切关注浏览器的发展动态,及时掌握最新的兼容性技巧和解决方案,以确保你的动画设计能够在广泛的用户群体中得到良好的呈现。
489 58
jQuery+CSS3实现404背景游戏动画源码
jQuery+CSS3实现404背景游戏动画源码
317 22

热门文章

最新文章

  • 1
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
    589
  • 2
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
    451
  • 3
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
    452
  • 4
    (CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
    297
  • 5
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
    576
  • 6
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
    749
  • 7
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(四):元素盒子模型;详细分析边框属性、盒子外边距
    1473
  • 8
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(三):元素继承关系、层叠样式规则、字体属性、文本属性;针对字体和文本作样式修改
    325
  • 9
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
    1188
  • 10
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(一):CSS发展史;CSS样式表的引入;CSS选择器使用,附带案例介绍
    528