当前位置:   article > 正文

CSS之动画

CSS之动画

前言:

一个好的事物应该是有生命,而不是死板的,我们在制作网页时也是如此,为了让画面变得更加生动有趣,我们会给它加上动画的效果,例如过度、变形、旋转、放缩。


动画:

什么是动画:

动画是一种动态的效果,例如我们的GIF图也是一种动画,其实现的方式就是通过帧来实现的,我认为是多张图片的切换。

动画的基础操作:

设置关键帧
语法:
文字解释:

(1)基本框架:

         @keyframes 关键帧名称 {内容}

(2)内容:

            内容当中使用from(或者0%)表示动画开始的位置,使用to(或者100%)表示结束的位置。

代码演示:   

<1>

  1. @keyframes name {
  2. from{
  3. /*开始的位置*/
  4. }
  5. to{
  6. /*结束的位置*/
  7. }
  8. }

<2>

  1. @keyframes name {
  2. 0%{
  3. /*开始的位置*/
  4. }
  5. 100%{
  6. /*结束的位置*/
  7. }
  8. }

动画的常用属性:

可以参考此篇文章:点此跳转

属性解释属性值解释
animation-name指定要对当前元素生效的关键帧的名字自定义名称
animation-duration指定动画的执行时间填入运行时间(秒或毫秒)
animation-timing-function此属性的详细解释看此处: 点此跳转
 animation-iteration-count指定动画执行的次数
常数次数
infinite指定动画应该播放无限次(永远)
animation-direction指定动画运行的方向
normal默认值 从from向to运行 每次都是这样
reverse从 to 向 from 运行 每次都是这样
alternate从 from 向 to 运行 重复执行动画时反向执行
alternate-reverse从 to 向 from 运行 重复执行动画时反向执行
animation-play-state设置动画的执行状态
running默认值 动画执行
paused动画暂停
animation-fill-mode指定动画的填充模式
none默认值 动画执行完毕元素回到原来位置
forwards动画执行完毕元素会停止在动画结束的位置
backwards动画延时等待时,元素就会处于开始位置
both结合了 forwards 和 backwards

animation-delay设置动画的延时

单位可以是秒(s)或毫秒(ms)

当为负数时,立即开始动画,但跳过前多少时间的动画

transition可以同时设置动画相关的所有属性

如果要写延迟,则两个时间中第一个是持续时间,第二个是延迟

动画使用方法:

使用animation【这是一个简写的用法,里面直接写入上方属性】添加动画效果,动画名称和动画时长必须赋值

 代码演示:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. <style>
  9. .outer{
  10. height: 500px;
  11. border-bottom: 10px black solid;
  12. }
  13. .outer div{
  14. float: left;
  15. width: 100px;
  16. height: 100px;
  17. background-color: red;
  18. animation: act .1s forwards linear infinite alternate;
  19. }
  20. div.box1{
  21. background-color: orange;
  22. animation-duration: 5s;
  23. }
  24. @keyframes act{
  25. from{
  26. margin-top: 0;
  27. }
  28. to{
  29. margin-top: 400px;
  30. }
  31. }
  32. </style>
  33. </head>
  34. <body>
  35. <div class="outer">
  36. <div class="box1"></div>
  37. </div>
  38. </body>
  39. </html>


过渡(transition):

可以参考这篇文章:点此跳转

什么是过渡:

过度是指指定一个属性发生变化时的切换方式,其与动画类似,两者的不同之处在于过渡需要条件的激活。

常用属性:

属性解释属性值
transition-property属性用来设置元素中参与过渡的属性名称
none表示没有属性参与过渡效果
all表示所有属性都参与过渡效果
property定义应用过渡效果的 CSS 属性名称列表,多个属性名称之间使用逗号,进行分隔

transition-duration用来设置过渡需要花费的时间(单位为秒或者毫秒)用来设置过渡需要花费的时间(单位为秒或者毫秒)
transition-timing-function属性用来设置过渡动画的类型
linear以始终相同的速度完成整个过渡过程
ease以慢速开始,然后变快,然后慢速结束的顺序来完成过渡过程
ease-in以慢速开始过渡的过程
ease-out以慢速结束过渡的过程
ease-in-out以慢速开始,并以慢速结束的过渡效果
cubic-bezier(n, n, n, n)使用 cubic-bezier() 函数来定义自己的值,以上几种都可以使用这个来表示,每个参数的取值范围在 0 到 1 之间

代码演示(举例):

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Document</title>
  7. <style>
  8. img{
  9. width: 100px;
  10. transition-property:width;
  11. }
  12. /*点击放大*/
  13. img:hover{
  14. width: 500px;
  15. }
  16. </style>
  17. </head>
  18. <body>
  19. <div>
  20. <img src="../img/4.jpg" alt="">
  21. </div>
  22. </body>
  23. </html>

 


变形(仅仅讲三维空间的):

可以参考此篇文章:点此跳转

什么是变形:

变形是指通过css来改变元素的形状或位置,不会影响到页面的布局,百分比是相对于自身计算

常用属性:

属性说明
transform: translateX()沿着x轴平移(水平)
transform: translateY()沿着Y轴平移(竖直)
transform: translateZ()沿着Z轴平移(z轴可以理解为离使用者的远近)

代码演示:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Document</title>
  7. </head>
  8. <style>
  9. div{
  10. perspective:800px;
  11. }
  12. .box1{
  13. width: 500px;
  14. height: 500px;
  15. margin: 0px auto;
  16. margin-top: 100px;
  17. background-color: lightblue;
  18. }
  19. .box2{
  20. width: 100px;
  21. height: 100px;
  22. margin: 0px auto;
  23. background-color: aquamarine;
  24. }
  25. .box2:hover{
  26. transform: translatez(200px);
  27. }
  28. </style>
  29. <body>
  30. <div class="box1">
  31. <div class="box2"></div>
  32. </div>
  33. </body>
  34. </html>

 


旋转(仅仅讲二维空间的):

可以参考此篇文章:点击查阅

什么是旋转:

旋转使某一个物体沿着某个中心旋转相应的度数,角度为正表示顺时针旋转,负数表示逆时针旋转。

常用属性:

属性解释
transform:rotate(角度)围绕着中心点进行旋转
transform:rotatex(角度)围绕着 x轴点进行旋转
transform:rotatey(角度)围绕着y轴点进行旋转

代码演示:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Document</title>
  7. </head>
  8. <style>
  9. .box1{
  10. width: 200px;
  11. height: 200px;
  12. margin: 0px auto;
  13. margin-top: 100px;
  14. background-color: lightblue;
  15. }
  16. .box2{
  17. width: 200px;
  18. height: 200px;
  19. margin: 0px auto;
  20. background-color: aquamarine;
  21. }
  22. .box2:hover{
  23. transform: rotate(45deg);
  24. }
  25. </style>
  26. <body>
  27. <div class="box1">
  28. <div class="box2"></div>
  29. </div>
  30. </body>
  31. </html>

 


放缩:

可以参考此篇文章:点击查阅

什么是放缩:

放缩是指物体在根据某个中心线等比例向两边伸长。

常用属性:

属性说明
scalex(倍数)沿着y的中心线向水平两侧伸长
scaley(倍数x)沿着x的中心线向竖直两侧伸长
scale(x的倍数,y的倍数)/scale(倍数)分别沿着x,y的中心线向两侧伸长【当只有一个倍数时水平竖直方向进行相同操作】
scalez(倍数)沿着z轴进行伸长操作
scale3d(x的倍数,y的倍数,z的倍数)与scale操作相同

代码演示:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Document</title>
  7. </head>
  8. <style>
  9. .box1{
  10. width: 200px;
  11. height: 200px;
  12. margin: 0px auto;
  13. margin-top: 100px;
  14. background-color: lightblue;
  15. }
  16. .box1:hover{
  17. transform: scale(2,3);
  18. }
  19. </style>
  20. <body>
  21. <div class="box1">
  22. </div>
  23. </body>
  24. </html>

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/527088
推荐阅读
相关标签
  

闽ICP备14008679号