CSS笔记——触发式动画Transition、主动式动画Animation、Transfrom 动画、CSS 3D 动画、阴影和滤镜样式
CSS动画
一、触发式动画Transition
transition过渡动画,一般配合伪类使用
属性值:
-
transition-duration:
指定过渡效果的持续时间,以秒或毫秒为单位。
-
transition-timing-function:
指定过渡效果的时间函数,即控制过渡速度的函数。常用的值有 ease、linear、ease-in、ease-out、ease-in-out 等。
-
transition-delay:指定过渡效果延迟的时间,以秒或毫秒为单位。
-
transition-property:指定要过渡的 CSS 属性。可以指定一个或多个属性
举个例子,
.box {width: 100px;height: 100px;background-color: red;transition-property: background-color;transition-duration: 1s;transition-timing-function: ease-in-out;/* 复合属性*/transition: 属性名,过渡时间,时间函数,延迟时间;
}.box:hover {background-color: blue;
}
transition 属性只能应用于一些可以被数值化的 CSS 属性,例如 width、height、background-color 等。像 display、visibility 等不能被过渡的属性就无法使用 transition 属性来实现动画效果。
此外,transition 属性也可以与其他 CSS 动画属性(如 animation)组合使用,以实现更加复杂的动画效果。
二、主动式动画Animation
CSS的 Animation 属性可以实现比 transition 更加复杂、多样化的动画效果。
animation 属性需要指定一个动画名称,以及一系列动画选项,包括动画的持续时间、时间函数、延迟时间、重复次数、播放方向等。
animation :动画名(name) ,持续时间(duration),延迟时间(delay),动画速率(step(5),运动次数(默认一次,可选n/infinte)**
具体来说,animation 属性有以下几个值:
- animation-name:指定动画的名称,通常需要与 @keyframes 规则配合使用。@keyframes 规则用于定义动画的关键帧,即动画从开始到结束的过程中的关键状态。可以通过指定关键帧的百分比或关键字来定义不同的状态。例如:
/*定义函数*/
@keyframes move {from {left: 0;}to {left: 100px;}
}.box {animation-name: move;animation-duration: 2s;animation-timing-function: linear;/* 复合属性*/animation : move 2s linear;
}
在这个例子中,定义了一个名为 move 的动画,它包含两个关键帧,分别在 0% 和 100% 处,分别定义了 .box 元素的 left 属性的值。当应用了这个动画后,.box 元素会从 left=0 的位置平滑过渡到 left=100px 的位置。
-
animation-duration:指定动画的持续时间,以秒或毫秒为单位。
-
animation-timing-function:指定动画的时间函数,即控制动画速度的函数。
可取值:ease、linear、ease-in、ease-out、ease-in-out 等。
-
animation-delay:指定动画延迟的时间,以秒或毫秒为单位。
-
animation-iteration-count:指定动画的重复次数。
可取值:数值(如 2、3)或关键字(如 infinite,表示无限重复)。
-
animation-direction:指定动画的播放方向。
可取值: normal(正常播放)、reverse(反向播放)、alternate(正反交替播放)、alternate-reverse(反正交替播放)。
-
animation-fill-mode:指定动画结束后元素的状态
可取值:
- none: 这是默认值,表示动画在播放之前或之后,不会影响元素的样式。
- forwards: 表示动画在结束后,元素会保留最后一个关键帧的样式。
- backwards: 表示动画在开始前,元素会应用第一个关键帧的样式。
- both: 表示动画在开始前和结束后,都会应用相应的关键帧的样式。
-
animation-play-state:控制动画的播放状态等。
可取值:paused 停止 ,running 运动起来
需要注意的是,动画效果的复杂性通常会影响性能。因此,在使用 animation 属性时,应尽量避免使用过于复杂的动画效果,以免影响页面的性能。
三、Transfrom 动画
Transform 是 CSS3 中的一个属性,可以对元素进行变形,包括旋转、缩放、扭曲等效果。Transform 可以结合 CSS 的过渡和动画属性使用,实现各种有趣的动画效果。
Transform 属性的语法如下:
transform: none|transform-functions;
其中,transform-functions 是一个或多个变形函数,可以使用以下变形函数:
-
translate():平移元素,接受 X 和 Y 方向的偏移量
百分比
像素
-
rotate():旋转元素,接受旋转角度,可以使用度数或者弧度deg作为单位。 -
scale():缩放元素,接受 X 和 Y 方向的缩放比例,可以使用小数或者百分比作为单位。 -
skew():扭曲元素,接受 X 和 Y 方向的扭曲角度,可以使用度数或者弧度作为单位。 -
matrix():可以通过一个 6 个值的矩阵来实现所有变换效果。
除了变形函数,还有一些常用的属性:
transform-origin:指定元素变形的中心点,可以设置为一个固定的坐标点,也可以设置为相对位置的百分比。transform-style:指定元素的子元素是否继承父元素的变形效果,可以设置为flat或者preserve-3d。perspective:设置元素的透视距离,只有在使用preserve-3d的情况下才会起作用。
例如,以下代码实现了一个旋转和缩放的动画效果:
.box {width: 100px;height: 100px;background-color: red;transition: transform 1s ease;
}.box:hover {transform: rotate(45deg) scale(1.2);
}
CSS 3D 动画属性是一组可以使用 CSS 实现 3D 动画效果的属性,这些属性包括:
- transform-style:指定被转换元素的子元素如何被平移、旋转和缩放。可取值:
- flat:默认值,子元素不进行 3D 转换。
- preserve-3d:子元素进行 3D 转换。
- perspective:指定 3D 转换元素的观察者视角,用于模拟真实 3D 空间。值越小,视角越近,立体感越强。可取值:
- length:表示长度值,必须为正数,常见单位有 px、em、rem、% 等。
- perspective-origin:指定 3D 转换元素的观察者视角的位置。可取值:
- x-axis:left、center、right。
- y-axis:top、center、bottom。
- z-axis:length。
- transform-style:指定被转换元素的子元素如何被平移、旋转和缩放。可取值:
- flat:默认值,子元素不进行 3D 转换。
- preserve-3d:子元素进行 3D 转换。
- transform:指定元素进行平移、旋转、缩放等变换操作。可取值:
- translateX(x):沿 x 轴平移。
- translateY(y):沿 y 轴平移。
- translateZ(z):沿 z 轴平移。
- translate3d(x, y, z):三维平移。
- scaleX(x):沿 x 轴缩放。
- scaleY(y):沿 y 轴缩放。
- scaleZ(z):沿 z 轴缩放。
- scale3d(x, y, z):三维缩放。
- rotateX(angle):沿 x 轴旋转。
- rotateY(angle):沿 y 轴旋转。
- rotateZ(angle):沿 z 轴旋转。
- rotate3d(x, y, z, angle):三维旋转。
- skewX(angle):沿 x 轴倾斜。
- skewY(angle):沿 y 轴倾斜。
- matrix(n,n,n,n,n,n):矩阵变换。
- matrix3d(n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n):三维矩阵变换。
- transition:指定元素过渡效果的相关属性。可取值:
- transition-property:指定要过渡的 CSS 属性名称。
- transition-duration:指定过渡效果持续的时间。
- transition-timing-function:指定过渡效果的时间函数。
- transition-delay:指定过渡效果延迟的时间。
- animation:指定元素动画效果的相关属性。
四、阴影和滤镜样式
-
box-shadow
box-shadow属性用于在元素周围创建一个阴影效果,它可以为一个元素添加立体感和深度感。其基本语法如下:box-shadow: h-shadow v-shadow blur spread color inset;其中各参数的含义如下:
h-shadow:水平阴影的位置,可正可负,值为0表示无水平阴影,必须设置。v-shadow:垂直阴影的位置,可正可负,值为0表示无垂直阴影,必须设置。blur:阴影的模糊半径,可选,值越大,阴影越模糊,不设置时阴影边缘锐利。spread:阴影的扩散半径,可选,正数表示扩大阴影面积,负数表示缩小阴影面积,不设置时阴影与元素同大小。color:阴影的颜色,可选,默认为黑色。inset:可选,表示阴影是否在边框内部,不设置时阴影在边框外部。
box-shadow属性还支持多个阴影,多个阴影之间用逗号隔开即可。例如:box-shadow: 2px 2px 10px #666, -2px -2px 10px #666;box-shadow属性可以为元素添加阴影效果,同时还可以通过调整各个参数的值,实现不同的阴影效果,例如内阴影、多重阴影等。text-shadow属性用于为文本添加阴影效果,它可以为文本增加立体感和视觉效果。其基本语法如下:text-shadow: h-shadow v-shadow blur color;其中各参数的含义如下:
h-shadow:水平阴影的位置,可正可负,值为0表示无水平阴影,必须设置。v-shadow:垂直阴影的位置,可正可负,值为0表示无垂直阴影,必须设置。blur:阴影的模糊半径,可选,值越大,阴影越模糊,不设置时阴影边缘锐利。color:阴影的颜色,可选,默认为黑色。
-
text-shadow
text-shadow属性同样也支持多个阴影,多个阴影之间用逗号隔开即可。例如:text-shadow: 1px 1px 2px #000, -1px -1px 2px #fff;上述代码表示为文本添加两个阴影,一个在右下方,另一个在左上方。第一个阴影的水平偏移量为1px,垂直偏移量为1px,模糊半径为2px,颜色为#000;第二个阴影的水平偏移量为-1px,垂直偏移量为-1px,模糊半径为2px,颜色为#fff。
text-shadow属性可以通过调整各个参数的值,实现不同的文本阴影效果。通常,为文本添加一个略微模糊、颜色较浅的阴影,可以让文本看起来更加立体和清晰。 -
filter
filter属性是 CSS3 中的一个强大属性,它可以为元素添加各种视觉效果,如模糊、颜色调整、亮度、对比度、饱和度等。其基本语法如下:filter: filter-function;其中,
filter-function是一种滤镜函数,用于指定要应用的滤镜效果。常见的滤镜函数有以下几种:-
blur()用于模糊元素。参数值表示模糊半径,值越大,模糊程度越高。
filter: blur(5px); -
brightness()用于调整元素的亮度。参数值为一个百分数或小数,表示亮度的相对值。值小于 100% 表示降低亮度,值大于 100% 表示增加亮度。
filter: brightness(80%); -
contrast()用于调整元素的对比度。参数值为一个百分数或小数,表示对比度的相对值。值小于 100% 表示降低对比度,值大于 100% 表示增加对比度。
filter: contrast(150%); -
grayscale()用于将元素转换为灰度图像。参数值为一个百分数或小数,表示转换的程度。
filter: grayscale(50%); -
hue-rotate()用于调整元素的色相。参数值为一个角度值,表示旋转的角度。旋转的角度范围为 0~360 度。
filter: hue-rotate(90deg); -
invert()用于反转元素的颜色。参数值为一个百分数或小数,表示反转的程度。
filter: invert(50%); -
opacity()用于调整元素的透明度。参数值为一个百分数或小数,表示透明度的相对值。值小于 100% 表示降低透明度,值大于 100% 表示增加透明度。
filter: opacity(50%); -
saturate()用于调整元素的饱和度。参数值为一个百分数或小数,表示饱和度的相对值。值小于 100% 表示降低饱和度,值大于 100% 表示增加饱和度。
filter: saturate(150%);9、sepia()
用于将元素转换为深褐色调的图像。参数值为一个百分数或小数,表示转换的程度。
-
drop-shadow()用于为元素添加阴影效果。参数值可以包括一个长度值和两个可选的颜色值。第一个参数表示阴影的水平偏移量,第二个参数表示阴影的垂直偏移量,第三个参数表示阴影的模糊半径,第四个参数表示阴影的颜色。如果只有一个长度值,则表示阴影的水平和垂直偏移量相同。
filter: drop-shadow(2px 2px 2px #000); -
url()用于引用 SVG 图像或定义自定义滤镜。参数值为一个 SVG 文件或 SVG 中定义的一个滤镜标识符。
filter: url("filters.svg#filter-id");上述是一些常见的
filter函数,还有其他一些函数,如url()、matrix()等等。使用filter属性可以为网页元素添加一些很酷的视觉效果,但同时也需要考虑浏览器兼容性问题。
-
-
五、CSS 的3D动画
CSS 3D 动画属性的其他常用属性如下:
- transform-origin:指定元素变换的基点位置,默认是元素中心点。可取值:
- x-axis:left、center、right。
- y-axis:top、center、bottom。
- z-axis:length。
- backface-visibility:指定元素反面是否可见。可取值:
- visible:默认值,反面可见。
- hidden:反面不可见。
- perspective-origin:指定 3D 转换元素的观察者视角的位置。可取值:
- x-axis:left、center、right。
- y-axis:top、center、bottom。
- z-axis:length。
- transform-style:指定被转换元素的子元素如何被平移、旋转和缩放。可取值:
- flat:默认值,子元素不进行 3D 转换。
- preserve-3d:子元素进行 3D 转换。
- perspective:指定 3D 转换元素的观察者视角,用于模拟真实 3D 空间。值越小,视角越近,立体感越强。可取值:
- length:表示长度值,必须为正数,常见单位有 px、em、rem、% 等。
- animation:指定元素动画效果的相关属性。可取值:
- animation-name:指定动画名称。
- animation-duration:指定动画效果持续的时间。
- animation-timing-function:指定动画效果的时间函数。
- animation-delay:指定动画效果延迟的时间。
- animation-iteration-count:指定动画重复次数。
- animation-direction:指定动画方向。
- animation-fill-mode:指定动画效果在开始前和结束后如何显示。
- animation-play-state:指定动画的播放状态,可以暂停或继续播放。
相关文章:
CSS笔记——触发式动画Transition、主动式动画Animation、Transfrom 动画、CSS 3D 动画、阴影和滤镜样式
CSS动画 一、触发式动画Transition transition过渡动画,一般配合伪类使用 属性值: transition-duration: 指定过渡效果的持续时间,以秒或毫秒为单位。 transition-timing-function: 指定过渡效果的时间函数ÿ…...
软件测试之Web安全测试详解
前言 随着互联网时代的蓬勃发展,基于Web环境下的应用系统、应用软件也得到了越来越广泛的使用。 目前,很多企业的业务发展都依赖于互联网,比如,网上银行、网络购物、网络游戏等。但,由于很多恶意攻击者想通过截获他人…...
MYSQL binlog
为了防止 binlog 文件过大导致无可用的磁盘空间,MySQL 提供了一个系统变量用来配置过期时间。 MySQL5.7 :expire_logs_days,精确度为天; MySQL8.0 :binlog_expire_logs_seconds,精确度为秒。 SET GLOBAL bi…...
Web 基础概念
自己总结的web前端知识体系大全 基础概念 DOM DOM是什么意思-前端入门_dom是什么意思啊_猿说前端的博客-CSDN博客 DOM的含义: DOM称为文件对象模型(DocumentObjectModel,简称DOM),是W3C组织推荐的处理可扩展置标语言的…...
谈谈最近招人的感受!
最近折腾新的项目,面试了很多实习生小伙伴,我说说我的一些「面试」感受, 虽然是一个老生常谈的话题,但是依然提一下。 准时很重要:提前一点时间,踩个点,别迟到,面试的过程中由于每个…...
【日常业务开发】Java调用第三方http接口的常用方式
【日常业务开发】Java调用第三方http接口的常用方式 概述Java调用第三方http接口的方式通过JDK网络类Java.net.HttpURLConnection通过apache common封装好的HttpClient通过Apache封装好的CloseableHttpClient通过OkHttp通过Spring的RestTemplate通过hutool的HttpUtil 总结 概述…...
【大数据开发技术】实验04-HDFS文件创建与写入
文章目录 一、实验目标二、实验要求三、实验内容四、实验步骤 一、实验目标 熟练掌握hadoop操作指令及HDFS命令行接口掌握HDFS原理熟练掌握HDFS的API使用方法掌握单个本地文件写入到HDFS文件的方法掌握多个本地文件批量写入到HDFS文件的方法 二、实验要求 给出主要实验步骤成…...
中国制造让苹果跪服,将再增加一家中国高科技供应商
日前产业链人士指出由于京东方的OLED面板有力地制衡韩国面板厂商三星和LGD,促使他们降价,而且技术也不错,因此正计划再引入一家中国OLED面板厂商,以进一步促进OLED面板的竞争。 早期苹果的OLED面板完全由三星供应,由此…...
港卡开户感想(2023-8)
目录 银行列表预约开户总体原则外资行本地行内资行补充 选择落地点酒店及转换插头国际漫游换港币成行下一步 - 保险附录整理的银行资料 2023年8月份去了趟香港做银行开户, 整理如下供参考. 银行列表 https://www.hkma.gov.hk/gb_chi/smart-consumers/account-opening/contact-…...
机器学习第十一课--K-Means聚类
一.聚类的概念 K-Means算法是最经典的聚类算法,几乎所有的聚类分析场景,你都可以使用K-Means,而且在营销场景上,它就是"King",所以不管从事数据分析师甚至是AI工程师,不知道K-Means是”不可原谅…...
Java on Azure Tooling 8月更新|以应用程序为中心的视图支持及 Azure 应用服务部署状态改进
作者:Jialuo Gan - Program Manager, Developer Division at Microsoft 排版:Alan Wang 大家好,欢迎阅读 Java on Azure 工具的八月更新。在本次更新中,我们将推出新的以应用程序为中心的视图支持,帮助开发人员在一个项…...
论文笔记:ST2Vec: Spatio-Temporal Trajectory SimilarityLearning in Road Networks
2022 KDD 1 intro 现有的轨迹相似性学习方案强调空间相似性而忽视了时空轨迹的时间维度,这使得它们在有时间感知的场景中效率低下 如上图,在拼车过程中,T1表示司机计划的行程,T2和T3是两个想要搭车的人。T1和T2在空间上更接近&am…...
upload-labs靶场未知后缀名解析漏洞
upload-labs靶场未知后缀名解析漏洞 版本影响: phpstudy 版本:5.2.17 1 环境搭建 1.1 在线靶场下载,解压到phpstudy的www目录下,即可使用 https://github.com/c0ny1/upload-labs1.2 已启动:访问端口9000&…...
VisualStudio配置opencv
下载opencv 链接:https://opencv.org/releases/ 我下载的是4.7.0,选择windows下载。 下载成功后打开exe文件,选择路径安装。 配置环境变量 安装成功后找到安装目录,复制bin目录路径。 我的是放在了D盘 D:\Opencv4.7.0\opencv…...
如何通过git指令加入管理者仓库并提交分支(Github Gitee)
文章目录 创建GitHub、Gitee账户安装git下载gitgit基础配置 管理者创建gitee仓库新建仓库配置公钥 管理者管理仓库开发者通过git指令提交git提交错误原因: 创建GitHub、Gitee账户 GitHub: https://github.com/ Gitee : https://gitee.com/ …...
LuatOS-SOC接口文档(air780E)-- fastlz - FastLZ压缩
示例 -- 与miniz库的差异 -- 内存需求量小很多, miniz库接近200k, fastlz只需要32k原始数据大小 -- 压缩比, miniz的压缩比要好于fastlz-- 准备好数据 local bigdata "123jfoiq4hlkfjbnasdilfhuqwo;hfashfp9qw38hrfaios;hfiuoaghfluaeisw" -- 压缩之 local cdata …...
MySQL表的增删改查(进阶)
一 、数据库约束 NOT NULL - 指示某列不能存储 NULL 值。 UNIQUE - 保证某列的每行必须有唯一的值。 DEFAULT - 规定没有给列赋值时的默认值。 PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。 确保某列(或两个列多个列的结合)有唯一标识, 有…...
Greenplum实用工具-gpfdist
注:本文翻译自https://docs.vmware.com/en/VMware-Greenplum/7/greenplum-database/utility_guide-ref-gpfdist.html 向Greenplum数据库段提供数据文件或从数据库段写入数据文件。 语法 gpfdist [-d <directory>] [-p <http_port>] [-P <last_http…...
axios和fetch的区别
axios和fetch都是用于发起HTTP请求的工具,但是它们有一些区别: 语法和用法:axios是一个基于Promise的HTTP客户端,具有更简洁和直观的语法,可以方便地发送GET、POST、PUT等各种请求,并提供了更多的请求配置选…...
HTML那些重要的知识点
文章目录 ⭐️写在前面的话⭐️一、HTML1.1 锚点链接跳转到当前页面的指定位置跳转到其他页面的指定位置 1.2 自定义列表1.3 表格的跨行跨列1.4 视频和音频内容1.5 页面结构规范1.6 ifram内联框架1.7 表单1.7.1 form标签1.7.2 原生表单部件1.7.3 下拉框1.7.4 文本域1.7.5 文件域…...
TVA智能体范式的工业视觉革命(8)
重磅预告:本专栏将独家连载系列丛书《智能体视觉技术与应用》部分精华内容,该书是世界首套系统阐述“因式智能体”视觉理论与实践的专著,特邀美国 TypeOne 公司首席科学家、斯坦福大学博士 Bohan 担任技术顾问。Bohan先生师从美国三院院士、“…...
2026年公司文化专题片拍摄公司排行榜:行业深度解析
引言随着企业对品牌传播和文化建设的重视程度不断提升,公司文化专题片成为展示企业形象、传递核心价值观的重要手段。越来越多的企业开始关注如何通过高质量的专题片来提升品牌形象和企业文化影响力。本文将深入分析2026年公司文化专题片拍摄行业的趋势,…...
重复内容误标率高达37%?NotebookLM检测逻辑漏洞全曝光,立即修复这6个隐藏开关
更多请点击: https://intelliparadigm.com 第一章:重复内容误标率高达37%?NotebookLM检测逻辑漏洞全曝光,立即修复这6个隐藏开关 NotebookLM 的“重复内容检测”功能并非基于端到端语义比对,而是依赖于分块哈希&#…...
2026本地视频怎么去水印?5款免费去水印软件对比和实用方法指南
很多人都遇到过这个问题:辛辛苦苦保存下来的视频、素材库里的片段,上面都贴了水印,想要二次编辑或重新发布时,这些水印就成了"眼中钉"。本地视频怎么去水印?2026年有哪些靠谱的免费去水印方法?今…...
古星图导航测试:波利尼西亚航海术的AI复现
跨越千年的航海智慧与现代测试的碰撞在科技高度发达的今天,GPS、北斗等卫星导航系统已成为我们出行、航海、航空等领域不可或缺的工具。然而,在数千年前,太平洋上的波利尼西亚人却凭借着对星空的深刻理解和独特的航海技术,在广袤无…...
AI智能体开发实战:agent-skills工具库核心技能解析与应用
1. 项目概述与核心价值最近在折腾AI智能体开发,发现一个挺有意思的现象:很多开发者,包括我自己在内,一开始都热衷于去研究那些大型的、功能全面的智能体框架,试图打造一个“全能”的AI助手。但实际落地时,往…...
如何快速搭建大众点评数据采集系统:Python爬虫完整指南
如何快速搭建大众点评数据采集系统:Python爬虫完整指南 【免费下载链接】dianping_spider 大众点评爬虫(全站可爬,解决动态字体加密,非OCR)。持续更新 项目地址: https://gitcode.com/gh_mirrors/di/dianping_spider…...
Git提交规范与自动化实践:从Conventional Commits到团队协作
1. 项目概述与核心价值最近在整理团队代码仓库时,发现一个挺普遍的问题:提交记录五花八门,什么“fix bug”、“update”、“test”之类的信息满天飞。这种混乱的提交历史,不仅让后续的代码审查和问题追溯变得异常困难,…...
GlosSI系统级Steam控制器:打破平台限制的终极解决方案
GlosSI系统级Steam控制器:打破平台限制的终极解决方案 【免费下载链接】GlosSI Tool for using Steam-Input controller rebinding at a system level alongside a global overlay 项目地址: https://gitcode.com/gh_mirrors/gl/GlosSI GlosSI(Gl…...
开源Claude本地部署指南:从模型选型到性能调优实战
1. 项目概述:当开源精神遇上AI推理最近在折腾本地部署大语言模型的朋友,估计都绕不开一个名字:Claude。作为Anthropic家的明星产品,Claude系列模型以其出色的推理能力、对指令的精准理解和强大的安全性,在开发者圈子里…...
