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

【学习笔记】CSS 动画keyframes

时间:2022-09-01 08:45:57浏览次数: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/7642/32170108

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

相关文章

  • CSS — 如何使用关键帧创建简单的动画
    CSS—如何使用关键帧创建简单的动画我决定对我从事的一些项目的关键帧做一个简单的教程。我不会使用JS对于本教程。第1步—设置HTML首先添加一些简单的样板H......
  • px,魔法单位 | CSS
    px,魔法单位|CSS1px是指CSS中每个屏幕上的1个像素吗?我们都在CSS中使用px单位来为宽度、高度、边距、字体大小等赋值。但这里的问题是一个像素到底是多少。它......
  • 使用 CSS 输入标签 — 教程
    使用CSS输入标签—教程HTML对于HTML,我们需要一个带有标签和输入的容器。我们还将为输入设置占位符(“”),这将允许我们使用CSS检测输入何时具有某些值。<divcla......
  • 最好的新 CSS 功能
    最好的新CSS功能ThebestnewCSSfeaturesfor2022自1996年引入CSS以来,它仍然是Web开发堆栈中必不可少的、不断发展的部分。CSS不断推出新功能以响应现实世......
  • Sass 变量与 CSS 自定义属性
    Sass变量与CSS自定义属性这篇文章最初发表在我们自己的博客网站上一探究竟看到更多这样的帖子!在这篇文章中语境真正的区别不可知论方法最后的想法语境在......
  • 我们应该如何在 CSS 中使用 rem、em、vw 和 px?
    我们应该如何在CSS中使用rem、em、vw和px?当我们开始创建网站时,我们通过HTML创建网站的基本结构,并使用CSS使网站的设计看起来更好。让我们检查一下rem、em、vw......
  • 您在 CSS 媒体查询中犯的错误。
    您在CSS媒体查询中犯的错误。视口,@media,最大高度,最小宽度,@supports,仅,屏幕和其他没用的东西.如果我们有这个,我们需要什么:@media屏幕和(最大宽度:Npx){}吨我看到......
  • 简单的Css动画---边框线条动画
    <!DOCTYPEhtml><htmllang="en"><head>  <metacharset="UTF-8">  <metahttp-equiv="X-UA-Compatible"content="IE=edge">  <metaname="viewport"c......
  • NO.6 HTML+CSS 笔记
    第一节1、HTML+CSS是两门语言,联合起来可以开发网页2、HTML+CSS+JavaScript=网页3、HTML:超文本标记语言:定义网页中有哪些内容4、CSS:层叠样式表:定义网页中的东西......
  • 前端——CSS
    CSS 指的是层叠样式表 (Cascading Style Sheets)述了如何在屏幕、纸张或其他媒体上显示HTML元素节省了大量工作。它可以同时控制多张网页的布局 CSS语法 C......