首页 > 其他分享 >【学习笔记】CSS 动画keyframes

【学习笔记】CSS 动画keyframes

时间:2022-08-31 03:24:00浏览次数:91  
标签:动画 设定 拨放 keyframes aos css data CSS

【学习笔记】CSS 动画keyframes

必要项目

  1. @keyframes 动画名称 对应 animation-name: 动画名称
  2. 动画持续时间 ,指动画开始到结束时间,预设为0,若没有设定,动画不会执行。

下图即box 物件从距离左边0px 位置往右移200px、从粉色变成绿色的写法。由于.box1里面有写背景色red,所以动画开始前.box 预设会是红色。

除了可以使用from, to 来设定动画之间的变化之外,也可以用0%~100% 百分比。下图表示在animation-duration 期间0%~100% 的变化。即关键影格(keyframes) 的位置,0% 表示第一格,50% 表示中间,100% 表示最后一格。

常用属性

动画迭代计数 : 可以 指定动画拨放次数 ,或是无限次拨放,预设为1次, infinite 则为无限次重复拨放。

动画延迟 : 可以设定 动画延迟拨放。 animation-delay :2s,即动画会延迟2 秒从第一秒开始拨放。如果设定为负值,动画会快转,例如动画时长10s,deley设为-2s, 那动画会从第二秒开始拨放,拨8s后停止。

动画填充模式 : 指动画最后停留位置,预设为none,即拨放完之后会回洞第一个位置。另有forwards (停留在最后一个位置)、backwards (留在第一个位置)、both (拥有前两者功能)三个值, 这篇 文章有更清楚的说明。

动画方向 : 指动画进行的方向。 (1) 预设normal 顺时针移动(2) reverse : 反方向移动(3) alternate : 奇数次拨放时会照原本的时序(4) alternate-reverse : 跟alternate 相反,奇数次拨放是逆时针,偶数次拨放是顺时针。

另外还有animation-timing-function 动画拨放的速度曲线,可以直接透过 范例(codepen) 查看差异,或是参考 此篇 文章。

套件

动画.css

下载Animate.css 或直接使用CDN

 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css"/>

我的密码笔

必要项目为animate__animated,可以看到官方在animate__animated 里面写了 动画持续时间 属性,同文章一开始提到的必要项目"动画拨放期间"。

animal.min.css 官方原始碼

另外一个animate__shakeX 则是动画效果(可依设计需求参考官方用法改用别的效果),从animate.min.css 文件可以看到它使用0%~100% 搭配transform 设定了在不同时间物件变化效果。

转换 可以用来改变视觉格式模型(visual formatting model),具有空间维度的概念,让物件平移(translate)、旋转(rotate)、缩放(scale) …等功能( 完整属性详见MDN )。

这里的属性值使用了translate,包括 :

 //括号内写单位或百分比都可以。  
 transform: translate(12px, 50%); // 同时设定x, y 轴的平移数值  
 transform: translateX(2em); // 设定x轴平移数值  
 transform: translateY(3in); // 设定Y轴平移数值  
 transform: translateZ(2px); // 设定z轴平移数值  
 transform: translate3d(12px, 50%, 3em);  // 包含 x y z

animate__shakeX 主要动画效果: 设定在奇数时间时x 轴往-10px移动,偶数时间x 轴往右10px 移动。

Animate.css 提供了多种效果,透过复制使用首页右侧效果css 即可使用。

Animate.css 首頁

套件

载入CSS、JS 之后就可以直接套用了

 <link href=”https://unpkg.com/[[email protected]](/cdn-cgi/l/email-protection)/dist/aos.css" rel=”stylesheet”>  
 <script src=”https://unpkg.com/[[email protected]](/cdn-cgi/l/email-protection)/dist/aos.js"></script> <script> AOS.init(); </script>

动画效果分为全域设计跟单一设计,全域设计指写在js 所有动画通吃的设定,单一设计指写在Html class 属性,包括:

 <div  
 data-aos="淡出"  
 日期-aos-offset="200"  
 日期操作系统延迟=“50”  
 数据-aos-duration="1000"  
 data-aos-easing="缓入出"  
 数据-aos-mirror="true"  
 数据-aos-once="假"  
 data-aos-anchor-placement="top-center">  
    
 </div>

data-aos 呈现的效果, 可参考官网展示
data-aos-offset 卷轴滚到多少才触发
data-aos-delay 延迟秒数
data-aos-duration 持续时间单位是毫秒,1000=1秒
data-aos-easing 执行速度,可以从 官方 github 参考其他效果
**data-aos-mirror 元素滚动时是否有动画
** data-aos-once 是否只触发一次,还是有滚动都触发
data-aos-anchor=”.example-anchor” 指滚到该元素时会同时叫出.example-anchor 的元素动画
data-aos-anchor-placement 指滚动到哪才触发,值包括:
(1) top-bottom : 指「元素的顶端」在浏览器的下方时执行动画
(2) center-bottom : 指「元素的中间」在浏览器的下方时执行动画
(3) bottom-bottom : 指「元素的底部」在浏览器的下方时执行动画
(4) top-center : 指「元素的顶端」在浏览器的中间时执行动画
(5) 另有top-top、center-center、center-top、bottom-center、bottom-top,以此类推

另外跟动画效果相关的套件还有 悬停.css 以及 视差.js
hover.css 顾名思义即滑鼠移动过去时显示的效果,parallax 则是运用位移达到视差效果,这两个部分之后有研究再分享。

我的练习 :
CSS 关键帧
套件 动物.css + 变换
套件

CSS keyframes 学习资源:
CSS keyframe oxxo 完整解析
animation-fill-mode 动画停留位置
animation-timing-function 速度曲线

套件 :
动画.css
Github
悬停.css
视差.js

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/1994/10543103

标签:动画,设定,拨放,keyframes,aos,css,data,CSS
From: https://www.cnblogs.com/amboke/p/16641566.html

相关文章

  • 2022 年 8 月前端更新:TypeScript、软件设计模式、焦点样式和单个 CSS 转换属性中的 SO
    2022年8月前端更新:TypeScript、软件设计模式、焦点样式和单个CSS转换属性中的SOLID原则本月我们将介绍TypeScript中的SOLID原则、React应用程序的软件设计模......
  • 使用 CSS 输入标签 — 教程
    使用CSS输入标签—教程HTML对于HTML,我们需要一个带有标签和输入的容器。我们还将为输入设置占位符(“”),这将允许我们使用CSS检测输入何时具有某些值。<divcla......
  • 简单的Css动画--涟漪效果
    <!DOCTYPEhtml><htmllang="en"><head>  <metacharset="UTF-8">  <metahttp-equiv="X-UA-Compatible"content="IE=edge">  <metaname="viewport"c......
  • CSS3层叠样式表
    ​ /**作者:呆萌老师*☑csdn认证讲师*☑51cto高级讲师*☑腾讯课堂认证讲师*☑网易云课堂认证讲师*☑华为开发者学堂认证讲师*☑爱奇艺千人名师计划成员*在这里......
  • css的引入方式,三种CSS引入方式合计
    CSS三种引入方式希望大家能够持续关注、点赞以及评论我的网站,以及我的证明网站,一起交流更多的IT技术!!!医院证明大全(1234篇病历诊断证明图片模板)-我要证明网(http://www.......
  • css的布局方式,常见的CSS布局类型
    常见的单列布局有两种:header,content和footer等宽的单列布局header与footer等宽,content略窄的单列布局实现第一种方式很简单,可以将header,content,footer......
  • 输入范围 CSS 选择器
    输入范围CSS选择器在本文中,我们将学习一个大多数开发人员都不知道的CSS选择器输入范围的CSS选择器这里的输入范围是指一个普通的html输入字段,属性type=number,即......
  • CSS 伪类:
    CSS伪类:伪类用于定义元素的特殊状态。例如,它可以用于:当用户将鼠标悬停在元素上时设置元素的样式。样式访问和未访问的链接不同。当元素获得焦点时为其设置样式。......
  • 学习 Tailwind CSS 的先决条件
    学习TailwindCSS的先决条件在本文中,我们将介绍您在开始之前需要了解的最低CSS知识顺风CSS.我假设你已经知道HTML基础.但如果你不这样做,我已经写了一个博客系列......
  • CSS 基础 - 结构
    CSS基础-结构记得我在我的文章中提到的HTML基础-结构最高级的结构将由CSS处理的文章?嗯,就是这样。Photoby设计公司on不飞溅正如我之前提到的,HTML的't......