CSS:过渡动画 (Transition)与关键帧动画(Keyfram)

news2025/1/16 1:03:39

一、过渡动画 (Transition)

1.简单介绍

Transition能为样式的变化提供过渡效果,例如在下面的代码中:

    .main {
      width: 300px;
      height: 100px;
      background-color: #d26f6f;
    }
    .main:hover {
      width: 300px;
      height: 200px;
      background-color: #5e3e3e;
      transition: all 1s;
    }

div会在鼠标移动到上面后逐渐从高100px变为高200px,而不会瞬间改变,更加丝滑。

2.使用方法

可以将所有属性写在一起,如:

transition: property duration timing-function delay;

也可以将属性分开写,如:

transition-property 指定CSS属性的name,比如说transform,也可以简单的all

transition-duration 动画效果的时间

transition-timing-function  指定transition效果的转速曲线

transition-delay  定义transition效果开始的时候

3.部分支持动画的属性

下面列举了一部分支持过度动画的CSS属性,更详细信息请查阅相关文档。 

opacity(透明度)

transform(变形,包括旋转、缩放、移动和倾斜等)

color(颜色)

background-color(背景颜色)

width 和 height(尺寸大小)

margin、padding、border-width(边距、内填充和边框宽度)

top, right, bottom, left(定位属性,当元素是相对定位、绝对定位或固定定位时)

font-size(字体大小)

outline-color、outline-width(轮廓颜色和宽度)

box-shadow(阴影效果)

background-position(背景图像位置)

border-radius(边框半径)

filter(滤镜效果,如模糊、灰度等)

clip-path(裁剪)

二、关键帧动画(Keyfram)

1.简单介绍

关键帧动画能够设置多个不同时间的不同样式来实现比过渡动画更为复杂的动画。例如在下面的代码中:

   .main {
      width: 300px;
      height: 100px;
      background-color: #67efd4;
      font-size: 16px;
    }
    .main:hover {
      animation: 2s infinite changeDiv;
    }
    @keyframes changeDiv {
      0% {
        width: 300px;
        height: 100px;
        background-color: #67efd4;
      }
      20% {
        width: 30px;
        height: 20px;
        background-color: #5ad344;
      }
      80% {
        width: 300px;
        height: 200px;
        background-color: #b0396f;
      }
      100% {
        width: 30px;
        height: 200px;
        background-color: #acd2a5;
      }
    }

Div会在2s内的不同阶段变成不同点状态,并具有过渡效果。

定义关键帧动画除了百分比,也可以使用from/to

   @keyframes changeDiv {
      from {
        width: 300px;
        height: 100px;
        background-color: #67efd4;
      }
      to {
        width: 30px;
        height: 200px;
        background-color: #acd2a5;
      }
    }

2.使用方法

可以将所有属性写在一起,如:

animation: name duration timing-function delay iteration-count direction fill-mode play-state;

也可以将属性分开写,如:

animation-name  @keyframes 动画的名称

animation-duration  动画完成一个周期所花费时间,

animation-timing-function 动画的速度曲线

animation-fill-mode 动画不播放时的样式。  

animation-delay 规定动画何时开始。

animation-iteration-count 规定动画被播放的次数。

animation-direction 规定动画是否在下一周期逆向地播放。

animation-play-state  规定动画是否正在运行或暂停。

3.关键帧属性的值

属性名称意义
animation-name@keyframes 动画的名称自定义一个名字
animation-duration动画完成一个周期所花费时间一个时间,例如5s,500ms,默认0
animation-timing-function动画的速度曲线

ease(默认):慢-快-最后慢

ease-in:加速

ease-out::减速

ease-in-out:慢-快-慢

自定义贝塞尔曲线 :例如ubic-bezier(0.8, 0, 0.2, 1)

animation-fill-mode动画不播放时的样式

none (默认): 动画结束后,元素会恢复到动画开始前的状态

forwards: 动画结束后,元素将保持在动画最后一个关键帧所设置的状态。

backwards: 如果动画是在元素显示后立即开始,则会在动画开始前应用第一个关键帧的样式。

both: 结合了 forwards 和 backwards 的效果。元素将在动画开始前应用首个关键帧的样式,并在动画结束后保持在最后一个关键帧的样式。

animation-delay规定动画何时开始一个时间
animation-iteration-count规定动画被播放的次数

整数值(默认1),表示动画播放的具体次数。

 infinite,表示动画应该无限重复播放。

animation-direction规定动画是否在下一周期逆向地播放

normal:动画按正常顺序播放

reverse:动画反向播放

alternate:动画在奇数次正常播放,在偶数次反向播放

alternate-reverse:动画在奇数次反向播放,在偶数次正常播放

animation-play-state规定动画是否正在运行或暂停

running:动画正常播放

paused:动画暂停

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1519328.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vscode 将已修改代码提交推送git时一直转圈也没有反馈

新安装的vscode 将已修改代码提交推送git时一直转圈也没有反馈 第一步 打开设置 第二步 搜索use Editor点击下面得git 第三步 将use Editor As commit input取消勾选 再次进行提交即可

【消息队列开发】 实现内存加载

文章目录 🍃前言🌳实现思路🚩读取消息长度🚩读取相应长度的消息🚩进行反序列化🚩判定是否有效🚩加入有效消息🚩收尾工作🚩代码实现 ⭕总结 🍃前言 本次开发目…

Ansible非标记语言YAML与任务剧本Playbook

前言 上篇介绍了 Ansible 单模块(AD-Hoc)的相关内容Ansible自动化运维Inventory与Ad-Hoc-CSDN博客,Ad-Hoc 命令是一次性的、即时执行的命令,用于在远程主机上执行特定任务,这些命令通常用于快速执行简单的任务。当需要…

二分查找注意事项

目录 1解题思路:首先二分查找分为左闭右闭和左闭右开两种情况,二种情况在细节处理上有所不同 2左闭右闭情况 3左闭右开 4总结: 1解题思路:首先二分查找分为左闭右闭和左闭右开两种情况,二种情况在细…

Go-知识sync map

Go-知识sync map 1. 用法1.1 声明1.2 增删改查1.3 增强操作 2. sync map 使用注意2.1 多读少写2.2 类型安全风险2.3 不能拷贝和传递 3. 实现原理3.1 数据结构3.2 read表数据结构3.3 entry 的数据结构3.4 sync map 的结构图3.5 插入数据3.6 查找数据3.7 再次插入3.8 删除数据 4.…

Unity基础学习

目录 基础知识点3D数学——基础Mathf三角函数坐标系 3D数学——向量向量模长和单位向量向量的加减乘除向量点乘向量叉乘向量插值运算 3D数学——四元数为何使用四元数四元数是什么四元数常用方法四元数计算 MonoBehavior中的重要内容延迟函数协同程序协同程序原理 Resources资源…

谁用过腾讯云轻量应用服务器2核2G3M配置,支持多少人在线?

腾讯云轻量应用服务器2核4G5M配置一年优惠价165元、252元15个月、三年756元,100%CPU性能,5M带宽下载速度640KB/秒,60GB SSD系统盘,月流量500GB,折合每天16.6GB流量,超出月流量包的流量按照0.8元每GB的价格支…

uniapp实现点击标签文本域中显示标签内容

先上一个效果图 实现的效果有: ①.点击标签时,标签改变颜色并处于可删除状态 ②.切换标签,文本域中出现标签的内容 ③.点击标签右上角的删除可删掉标签,同时清除文本域中标签的内容 ④.可输入内容,切换时不影响输入…

系统设计学习(三)限流与零拷贝

七、有哪些常用限流算法? Leaky Bucket 漏桶 漏桶可理解为是一个限定容量的请求队列。想象有一个桶,有水(指请求或数据)从上面流进来,水从桶下面的一个孔流出来。水流进桶的速度可以是随机的,但是水流出桶…

蓝桥杯小白赛第 7 场 3.奇偶排序(sort排序 + 双数组)

思路:在第一次看到这道题的时候我第一想法是用冒泡,但好像我的水平还不允许我写出来。我又读了遍题目发现它的数据很小,我就寻思着把它分成奇偶两部分。应该怎么分呢? 当然在读入的时候把这个问题解决就最好了。正好它的数据范围…

前端项目(vue3)自动化部署(Gitlab CI/CD)

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

C语言练习题【复试准备】

1、BoBo教KiKi字符常量或字符变量表示的字符在内存中以ASCII码形式存储。BoBo出了一个问题给KiKi,转换以下ASCII码为对应字符并输出他们。 //73,32,99,97,110,32,100,111,32,105,116,33 int main() {int arr[] {73,32,99,97,110,32,100,111,32,105,116,33};int i …

Swift:.ignoresSafeArea():自由布局的全方位掌握

ignoresSafeArea(_ regions : edges:)修饰符的说明 SwiftUI布局系统会调整视图的尺寸和位置,以避免特定的安全区域。这就确保了系统内容(比如软件键盘)或设备边缘不会遮挡您的视图。要将您的内容扩展到这些区域,您可以通过应用该修…

一文看懂红帽认证含金量有多高!

近期好多人来问红帽认证,有些是还在校的大学生,有些是已经工作的运维小伙伴。!现在的就业和职场环境下,系统学Linux确实是非常必要的。今天就给大家详细介绍下红帽认证,看看它的含金量有多高! 红帽认证是什么?红帽认证等级?红帽…

Sublime查看ANSI编码文档乱码问题

原因为没有安装对应的解码插件。 选择安装插件包 选择插件包:ConvertToUTF8或者GBK,我试了第一个插件包不行,安装GBK插件包后OK。

AI车辆占道识别摄像机

随着城市车辆数量的增加和交通状况的复杂化,道路交通安全问题日益突出,其中车辆占道现象严重影响了交通秩序和道路通畅。为了有效监管和防范车辆占道行为,AI车辆占道识别摄像机应运而生,利用人工智能技术,实现对车辆占…

探索CorelDRAW软件2024最新中文版的强大魅力,让你的电脑数码设计更上一层楼!

在当今日益发展的数字化时代,设计已成为连接创意与现实之间的桥梁,而CorelDRAW软件则是设计师们手中的得力助手。特别是随着CorelDRAW 2024最新中文版的发布,这一设计工具的魅力和功能得到了进一步的提升,为广大设计师们提供了前所…

strcmp的模拟实现

一:strcmp函数的定义: strcmp函数功能的解释: 比较两个字符串的大小(按照字符串中字符的ascll码值)。 标准规定: 第一个字符串大于第二个字符串,则返回大于 0 的数字 第一个字符串等于第二个…

Redis持久化和集群

redis持久化 RDB方式 Redis Database Backup file (redis数据备份文件), 也被叫做redis数据快照. 简单来说就是把内存中的所有数据记录到磁盘中. 快照文件称为RDB文件, 默认是保存在当前运行目录. [rootcentos-zyw ~]# docker exec -it redis redis-cli 127.0.0.1:6379> sav…

每日一题 第四期 洛谷 查找文献

【深基18.例3】查找文献 链接 题目描述 小 K 喜欢翻看洛谷博客获取知识。每篇文章可能会有若干个(也有可能没有)参考文献的链接指向别的博客文章。小 K 求知欲旺盛,如果他看了某篇文章,那么他一定会去看这篇文章的参考文献&…