当前位置: 首页 > news >正文

CSS 动画与变换属性详解

CSS 动画与变换属性详解

1. transform(变换)

1.1 基本概念

transform 属性允许您对元素进行 2D 或 3D 变换,包括旋转、缩放、移动(平移)和倾斜等操作。该属性不会改变文档布局,只影响元素的视觉呈现。

1.2 常用变换函数

函数语法描述示例
平移translateX(x), translateY(y), translate(x,y)在水平和/或垂直方向移动元素transform: translate(50px, 20px);
旋转rotate(angle)围绕元素中心旋转指定角度transform: rotate(45deg);
缩放scaleX(sx), scaleY(sy), scale(sx[, sy])在X和/或Y轴方向缩放元素transform: scale(1.5);
倾斜skewX(angle), skewY(angle), skew(ax[, ay])使元素沿X和/或Y轴倾斜指定角度transform: skew(10deg, 5deg);
矩阵matrix(a,b,c,d,e,f)使用6值矩阵应用复杂2D变换transform: matrix(1,0,0,1,50,50);
3D变换translate3d(), rotate3d(), scale3d()在3D空间中进行变换transform: translate3d(10px, 20px, 30px);

1.3 transform-origin 属性

transform-origin 属性用于设置变换的基点(原点),默认值为元素的中心点 。

取值:

  • 关键字left, right, top, bottom, center
  • 长度值:像素、em等具体单位
  • 百分比:相对于元素尺寸的百分比

示例:

.element {
transform-origin: left top; /* 以左上角为变换原点 */
transform: rotate(45deg);
}

2. @keyframes(关键帧)

2.1 基本概念

@keyframes 规则用于创建动画序列,通过定义动画过程中特定时间点的样式状态(关键帧)来控制动画的中间步骤。

2.2 语法格式

@keyframes 动画名称 {
0% { /* 起始状态样式 */ }
50% { /* 中间状态样式 */ }
100% { /* 结束状态样式 */ }
}

2.3 关键帧选择器

选择器等效值描述
from0%动画开始状态
to100%动画结束状态
25%, 50%, 75%-动画过程中的特定时间点

示例:

@keyframes slide-in {
from {
transform: translateX(-100%);
opacity: 0;
}
50% {
opacity: 0.5;
}
to {
transform: translateX(0);
opacity: 1;
}
}

3. animation(动画)

3.1 基本概念

animation 属性是一个简写属性,用于将动画效果应用于元素。它包含了多个子属性的功能。

3.2 子属性详解

属性描述可选值默认值
animation-name指定要应用的@keyframes动画名称自定义标识符或nonenone
animation-duration动画完成一个周期所需时间时间值(s或ms)0s
animation-timing-function动画的速度曲线ease, linear, ease-in, ease-out, ease-in-out, cubic-bezier()ease
animation-delay动画开始前的延迟时间时间值(s或ms)0s
animation-iteration-count动画播放次数数字或infinite1
animation-direction动画播放方向normal, reverse, alternate, alternate-reversenormal
animation-fill-mode动画外部的样式应用方式none, forwards, backwards, bothnone
animation-play-state动画播放状态running, pausedrunning

3.3 animation 简写语法

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

示例:

.element {
animation: slide-in 2s ease-in-out 0.5s infinite alternate forwards;
}

4. 综合应用示例

4.1 基本动画效果

.box {
width: 100px;
height: 100px;
background: blue;
animation: bounce 2s ease-in-out infinite;
}
@keyframes bounce {
0%, 100% {
transform: translateY(0);
}
50% {
transform: translateY(-30px);
}
}

4.2 复杂变换动画

.card {
transform-origin: center;
animation: card-animation 3s cubic-bezier(0.25, 0.46, 0.45, 0.94) alternate;
}
@keyframes card-animation {
0% {
transform: perspective(500px) rotateY(0deg) scale(0.8);
opacity: 0;
}
50% {
transform: perspective(500px) rotateY(180deg) scale(1.1);
opacity: 1;
}
100% {
transform: perspective(500px) rotateY(360deg) scale(1);
opacity: 1;
}
}

5. 浏览器兼容性提示

虽然现代浏览器对CSS动画和变换的支持良好,但在某些旧版本浏览器中可能需要添加供应商前缀:

.element {
-webkit-transform: rotate(45deg); /* Chrome, Safari */
-moz-transform: rotate(45deg); /* Firefox */
-ms-transform: rotate(45deg); /* IE 9 */
-o-transform: rotate(45deg); /* Opera */
transform: rotate(45deg);
}
@-webkit-keyframes example { /* Webkit前缀 */
from { opacity: 0; }
to { opacity: 1; }
}

以上表格和示例涵盖了CSS变换和动画的核心概念,可作为日常开发的快速参考。

http://www.dtcms.com/a/601370.html

相关文章:

  • 11.12 LeetCode 题目汇总与解题思路
  • 【代码审计】RuoYi-4.7.34.7.8 定时任务RCE 漏洞分析
  • 数学图论的艺术:解码最小公倍数图中的连通奥秘
  • 如何有效解决Windows 11界面卡顿问题,提升操作流畅度
  • 网站开发iso9001有哪些网页游戏网站
  • nginx安装配置、故障处置、性能优化
  • 网上商城互联网网站开发网站建设流程效果
  • 商品案例-组件封装(vue)
  • 新视角看 js 的数据类型
  • PySide6 + QML - QSerialPort01 - 扫描操作系统上有效的串口
  • 【前端面试】HTML篇
  • Next.js第四章(路由导航)
  • 从jsp打开一个html,怎么把jsp的某些参数传递给html
  • 谷歌google官方网站网站开发 书籍
  • 北京网站备案公司安徽观元建设有限公司网站
  • 若依plus请求加解密
  • PHP Filter:深入了解其功能与实现
  • Linux基础指令(简易版)
  • 农田灌区监测设备:赋能现代农业的精准感知与智能调控
  • 中山 灯饰 骏域网站建设专家百度关键词推广帝搜软件
  • 自己怎么做 优惠券网站西京一师一优课建设网站
  • CST电动车EMC仿真(二)——电机控制器MCU的EMC仿真
  • WPP Media(群邑)DOOH 解决方案 重构数字户外广告价值
  • 基于SpringBoot+Vue的美容美发在线预约系统的设计与实现【附源码】
  • 数字化转型改变了什么?从技术底层到业务本质的深度重构
  • 从 “被动抢修” 到 “主动防控”,安科瑞 mini 智能微断,重构末端配电安全新逻辑
  • 从经验到算法:智能获客系统如何重构ToB销售效率
  • Oracle 19C 数据字典 DBA_HIST_SEG_STAT 详细说明
  • tsfile.raw提示
  • JAVA中六种策略模式的实现