CSS-5.1 Transition 过渡

news2025/5/23 14:54:01

本系列可作为前端学习系列的笔记,代码的运行环境是在HBuilder中,小编会将代码复制下来,大家复制下来就可以练习了,方便大家学习。

HTML系列文章 已经收录在前端专栏,有需要的宝宝们可以点击前端专栏查看!

点赞关注不迷路!您的点赞、关注和收藏是对小编最大的支持和鼓励!

系列文章目录

CSS- 1.1 css选择器

CSS- 2.1 实战之图文混排、表格、表单、学校官网一级导航栏

CSS- 3.1 盒子模型-块级元素、行内元素、行内块级元素和display属性

CSS- 4.1 浮动(Float)

CSS- 4.2 相对定位(position: relative)

CSS- 4.3 绝对定位(position: absolute)&学校官网导航栏实例

CSS- 4.4 固定定位(fixed)& 咖啡售卖官网实例

CSS- 4.5 css + div 布局 & 简易网易云音乐 官网布置实例 

CSS- 4.6 radiu、shadow、animation动画

CSS-5.1 Transition 过渡


目录

系列文章目录

前言

一、Transition 过渡详解

1.基本概念

2.语法

3.常用过渡属性

4.示例

1. 基础悬停效果

2. 尺寸变化过渡

3. 透明度过渡

4. 多属性过渡

5.高级用法

1. 使用 all 关键字

2. 指定多个过渡

3. 结合 transform 实现高性能动画

6.速度曲线函数

7.注意事项

8.实际应用场景

二、代码实例

1. css3-transition过渡 代码如下:

2. 过渡应用1 代码如下:

3. 过渡应用2 代码如下:

 4. 过渡应用3 代码如下:

总结


前言

小编作为新晋码农一枚,会定期整理一些写的比较好的代码,作为自己的学习笔记,会试着做一下批注和补充,如转载或者参考他人文献会标明出处,非商用,如有侵权会删改!欢迎大家斧正和讨论!

一、Transition 过渡详解

CSS3 的 transition 属性允许元素在状态变化时(如悬停、点击等)产生平滑的动画效果,而无需使用 JavaScript。它是创建简单动画效果的一种高效方式。

1.基本概念

transition 属性是以下四个子属性的简写:

  1. transition-property:指定应用过渡效果的 CSS 属性
  2. transition-duration:指定过渡效果持续的时间
  3. transition-timing-function:指定过渡效果的速度曲线
  4. transition-delay:指定过渡效果开始前的延迟时间

2.语法

css

.element {
  transition: property duration timing-function delay;
}

或分别指定:

css

.element {
  transition-property: width;
  transition-duration: 0.5s;
  transition-timing-function: ease-in-out;
  transition-delay: 0.2s;
}

3.常用过渡属性

任何可以动画化的 CSS 属性都可以使用过渡效果,常见的包括:

  • color(颜色)
  • background-color(背景色)
  • width(宽度)
  • height(高度)
  • opacity(透明度)
  • transform(变形)
  • border-radius(圆角)
  • box-shadow(阴影)
  • font-size(字体大小)
  • margin(外边距)
  • padding(内边距)

4.示例

1. 基础悬停效果

css

.button {
  background-color: #3498db;
  color: white;
  padding: 10px 20px;
  border: none;
  border-radius: 5px;
  transition: background-color 0.3s ease;
}

.button:hover {
  background-color: #2980b9;
}

效果:当鼠标悬停在按钮上时,背景色会平滑过渡到更深的蓝色。

2. 尺寸变化过渡

css

.box {
  width: 100px;
  height: 100px;
  background-color: #e74c3c;
  transition: all 0.5s ease-in-out;
}

.box:hover {
  width: 200px;
  height: 200px;
  background-color: #c0392b;
}

效果:悬停时,盒子会平滑放大并改变颜色。

3. 透明度过渡

css

.overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0);
  transition: background-color 0.5s ease;
}

.overlay.active {
  background-color: rgba(0, 0, 0, 0.5);
}

效果:叠加层在激活时平滑地从不透明变为半透明。

4. 多属性过渡

css

.card {
  width: 200px;
  height: 200px;
  background-color: #f1c40f;
  border-radius: 10px;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
  transition: 
    transform 0.3s ease,
    box-shadow 0.3s ease;
}

.card:hover {
  transform: translateY(-10px);
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.3);
}

效果:悬停时,卡片轻微上浮并阴影加深,产生浮动效果。

5.高级用法

1. 使用 all 关键字

css

.element {
  transition: all 0.3s ease;
}

注意:虽然方便,但可能影响性能,特别是当有很多属性需要过渡时。

2. 指定多个过渡

css

.element {
  transition: 
    width 0.5s ease-in,
    height 0.3s ease-out,
    background-color 0.2s linear;
}

3. 结合 transform 实现高性能动画

css

.element {
  transition: transform 0.3s ease;
}

.element:hover {
  transform: scale(1.1) rotate(5deg);
}

优势transform 和 opacity 是由 GPU 加速的属性,性能更好。

6.速度曲线函数

  • ease(默认):慢速开始,然后变快,然后慢速结束
  • linear:匀速
  • ease-in:慢速开始
  • ease-out:慢速结束
  • ease-in-out:慢速开始和结束
  • cubic-bezier(n,n,n,n):自定义贝塞尔曲线

7.注意事项

  1. 性能考虑:避免对会频繁触发的属性(如 topleft)使用过渡,可能引起性能问题。
  2. 硬件加速:优先使用 transform 和 opacity 属性以获得最佳性能。
  3. 可访问性:确保过渡效果不会影响用户体验,特别是对于有运动敏感问题的用户。
  4. 兼容性:现代浏览器都支持 transition,但对于旧版浏览器可能需要前缀或回退方案。

8.实际应用场景

  • 导航菜单悬停效果
  • 按钮状态变化
  • 模态框显示/隐藏
  • 卡片悬停效果
  • 加载指示器
  • 图片悬停放大
  • 表单元素焦点状态

CSS3 的 transition 属性为网页交互提供了简单而强大的工具,可以显著提升用户体验而无需编写复杂的 JavaScript 代码。合理使用过渡效果可以使网站感觉更加生动和专业。

二、代码实例

1. 过渡应用 代码如下:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>css3-transition过渡</title>
		<style type="text/css">
			div {
				width: 300px;
				height: 100px;
				border: 1px solid black;
				text-align: center;
				line-height: 100px;
				font-size: 20px;
				background-color: silver;
				border-radius: 20px;
				transition: all 1s linear;
			}
			/* 触发器 hover */
			/* 那个元素的哪个属性发生变化 */
			/* div  background-color 发生变化 */
			/* 哪个元素的属性值发生变化 我们就把transition放在哪个属性元素对应的选择器当中 */
			div:hover {
				background-color: #45b823;
				color: white;
				border: none;
			}
		</style>
	</head>
	<body>
		<h1>过渡transition</h1>
		<p>将元素的某个属性从“一个值”在指定的时间内过渡到“另一个值”</p>
		<div>
			web design
		</div>
	</body>
</html>

代码运行如下:

2. 过渡应用1 代码如下:


<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>过渡应用1</title>
		<style type="text/css">
			* {
				margin: 0;
				padding: 0;
			}

			.showlist ul {
				list-style-type: none;
			}

			/* 最大的父盒子,用来进行页面居中 */
			.showlist {}

			.showlist ul li {
				width: 300px;
				height: 40px;
				border: 1px solid black;
				overflow: hidden;
				transition: all 1s linear;
			}

			.showlist h3 {
				width: 300px;
				height: 40px;
				text-align: left;
				line-height: 40px;
			}

			.showlist .text {
				width: 300px;
				height: 180px;
				background-color: white;
				color: black;
			}

			.showlist ul li:hover {
				height: 220px;
				background-color: black;
				color: white;
			}
			.showlist img {
				width: 300px;
				
			}
		</style>
	</head>
	<body>
		<div class="showlist">
			<ul>
				<li>
					<h3>
						这是标题
					</h3>
					<div class="text">
						<img src="../img/Leslie%20Mint.png" >
					</div>
				</li>
				<li>
					<h3>
						这是标题
					</h3>
					<div class="text">
						这是内容
					</div>
				</li>
				<li>
					<h3>
						这是标题
					</h3>
					<div class="text">
						这是内容
					</div>
				</li>
				<li>
					<h3>
						这是标题
					</h3>
					<div class="text">
						这是内容
					</div>
				</li>
			</ul>
		</div>
	</body>
</html>

代码运行如下:

3. 过渡应用2 代码如下:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>transition过渡应用2</title>
		<style type="text/css">
			*{
				margin: 0;
				padding: 0;
			}
			.container {
				width: 170px;
				height: 190px;
				position: relative;
				overflow: hidden;
				float: left;
				margin-right: 50px;
			}
			.container .text {
				width: 170px;
				height: 190px;
				/* border: 1px solid black; */
				position: absolute;
				left: 170px;
				top: 0px;
				transition: all 1s linear;
			}
			.container:hover .text {
				left: 0px;
				background-color: rgba(255,255,255,.6);
				color: saddlebrown;
			}
		</style>
	</head>
	<body>
		<div class="container">
			<img src="../img/kbjn.jpg" >
			<div class="text">
				<h1>标题</h1>
				<p>对文本的解释说明</p>
			</div>
		</div>
		<div class="container">
			<img src="../img/kbjn.jpg" >
			<div class="text">
				<h1>标题</h1>
				<p>对文本的解释说明</p>
			</div>
		</div>
		<div class="container">
			<img src="../img/kbjn.jpg" >
			<div class="text">
				<h1>标题</h1>
				<p>对文本的解释说明</p>
			</div>
		</div>
	</body>
</html>

代码运行如下:

 4. 过渡应用3 代码如下:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>过渡应用3</title>
		<style type="text/css">
			.wrap {
				width: 170px;
				height: 190px;
				transform-style: preserve-3d;
				position: relative;
				transition: all 1s linear;
			}
			.face {
				width: 170px;
				height: 190px;
				border: 1px solid saddlebrown;
			}
			.wrap:hover {
				transform: rotateY(180deg);
			}
			
			.wrap .back {
				/* 为了防止背面的字产生镜面效果,我们先翻180deg */
				transform: rotateY(180deg);
				background-color: saddlebrown;
				color: wheat;
				position: absolute;
				top: 0px;
			}
			
		</style>
	</head>
	<body>
		<div class="wrap">
			<div class="face front">
				<img src="../img/kbjn.jpg" >
			</div>
			<div class="face back">
				<h1>标题</h1>
				<p>这是解释说明</p>
			</div>
		</div>
	</body>
</html>

代码运行如下: 


总结

以上就是今天要讲的内容,本文简单记录了Transition 过渡,仅作为一份简单的笔记使用,大家根据注释理解

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

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

相关文章

从虚拟仿真到行业实训再到具身智能--华清远见嵌入式物联网人工智能全链路教学方案

2025年5月23-25日&#xff0c;第63届中国高等教育博览会&#xff08;高博会&#xff09;将在长春中铁东北亚国际博览中心举办。作为国内高等教育领域规模大、影响力广的综合性展会&#xff0c;高博会始终聚焦教育科技前沿&#xff0c;吸引全国高校管理者、一线教师、教育科技企…

告别手动绘图!2分钟用 AI 生成波士顿矩阵

波士顿矩阵作为经典工具&#xff0c;始终是企业定位产品组合、制定竞争策略的核心方法论。然而&#xff0c;传统手动绘制矩阵的方式&#xff0c;往往面临数据处理繁琐、图表调整耗时、团队协作低效等痛点。 随着AI技术的发展&#xff0c;这一现状正在被彻底改变。boardmix博思白…

GraphPad Prism工作表的管理

《2025新书现货 GraphPad Prism图表可视化与统计数据分析&#xff08;视频教学版&#xff09;雍杨 康巧昆 清华大学出版社教材书籍 9787302686460 GraphPadPrism图表可视化 无规格》【摘要 书评 试读】- 京东图书 GraphPad Prism统计数据分析_夏天又到了的博客-CSDN博客 工作…

告别静态UI!Guineration用AI打造用户专属动态界面

摘 要 作为智能原生操作系统 DingOS 的核心技术之一&#xff0c;Guineration 生成式 UI 体系深刻践行了 DingOS“服务定义软件”的核心理念。DingOS 以“一切皆服务、服务按需而取、按用付费”为设计宗旨&#xff0c;致力于通过智能原生能力与粒子服务架构&#xff0c;实现资源…

第六届电子通讯与人工智能国际学术会议(ICECAI 2025)

在数字化浪潮中&#xff0c;电子通讯与人工智能的融合正悄然重塑世界的运行逻辑。技术基础的共生关系是这场变革的核心——电子通讯如同“信息高速公路”&#xff0c;通过5G等高速传输技术&#xff0c;将海量数据实时输送至AI系统&#xff0c;使其能够像人类神经系统般快速响应…

解决vscode在任务栏显示白色图标

长久不用&#xff0c;不知道怎么着就显示成白色图标&#xff0c;虽然不影响使用&#xff0c;但是看起来不爽 问了豆包&#xff0c;给了个解决方法&#xff1a; 1、打开隐藏文件&#xff0c; 由于图标缓存文件是隐藏文件&#xff0c;首先点击资源管理器中的 “查看” 菜单&am…

架构思维:构建高并发扣减服务_分布式无主架构

文章目录 Pre无主架构的任务简单实现分布式无主架构 设计和实现扣减中的返还什么是扣减的返还返还实现原则原则一&#xff1a;扣减完成才能返还原则二&#xff1a;一次扣减可以多次返还原则三&#xff1a;返还的总数量要小于等于原始扣减的数量原则四&#xff1a;返还要保证幂等…

uni-app学习笔记九-vue3 v-for指令

v-for 指令基于一个数组来渲染一个列表。v-for 指令的值需要使用 item in items 形式的特殊语法&#xff0c;其中 items 是源数据的数组&#xff0c;而 item 是迭代项的别名&#xff1a; <template><view v-for"(item,index) in 10" :key"index"…

MAC电脑中右键后复制和拷贝的区别

在Mac电脑中&#xff0c;右键菜单中的“复制”和“拷贝”操作在功能上有所不同&#xff1a; 复制 功能&#xff1a;在选定的位置创建一个与原始文件相同的副本。快捷键&#xff1a;CommandD用于在当前位置快速复制文件&#xff0c;CommandC用于将内容复制到剪贴板。效果&…

华为2025年校招笔试手撕真题教程(二)

一、题目 大湾区某城市地铁线路非常密集&#xff0c;乘客很难一眼看出选择哪条线路乘坐比较合适&#xff0c;为了解决这个问题&#xff0c;地铁公司希望你开发一个程序帮助乘客挑选合适的乘坐线路&#xff0c;使得乘坐时间最短&#xff0c;地铁公司可以提供的数据是各相邻站点…

征程 6 J6E/M linear 双int16量化支持替代方案

1.背景简介 当发现使用 plugin 精度 debug 工具定位到是某个 linear 敏感时&#xff0c;示例如下&#xff1a; op_name sensitive_type op_type L1 quant_dty…

深度学习模块缝合拼接方法套路+即插即用模块分享

前言 在深度学习中&#xff0c;模型的设计往往不是从头开始&#xff0c;而是通过组合不同的模块来构建。这种“模块缝合”技术&#xff0c;就像搭积木一样&#xff0c;把不同的功能模块拼在一起&#xff0c;形成一个强大的模型。今天&#xff0c;我们就来聊聊四种常见的模块缝…

改写视频生产流程!快手SketchVideo开源:通过线稿精准控制动态分镜的AI视频生成方案

Sketch Video 的核心特点 Sketch Video 通过手绘生成动画的形式&#xff0c;将复杂的信息以简洁、有趣的方式展现出来。其核心特点包括&#xff1a; 超强吸引力 Sketch Video 的手绘风格赋予了视频一种质朴而真实的质感&#xff0c;与常见的精致特效视频形成鲜明对比。这种独…

04-Web后端基础(基础知识)

而像HTML、CSS、JS 以及图片、音频、视频等这些资源&#xff0c;我们都称为静态资源。 所谓静态资源&#xff0c;就是指在服务器上存储的不会改变的数据&#xff0c;通常不会根据用户的请求而变化。 那与静态资源对应的还有一类资源&#xff0c;就是动态资源。那所谓动态资源&…

Spring Cloud生态与技术选型指南:如何构建高可用的微服务系统?

引言&#xff1a;为什么选择Spring Cloud&#xff1f; 作为全球开发者首选的微服务框架&#xff0c;Spring Cloud凭借其开箱即用的组件、与Spring Boot的无缝集成&#xff0c;以及活跃的社区生态&#xff0c;成为企业级微服务架构的基石。但在实际项目中&#xff0c;如何从众多…

手写简单的tomcat

首先&#xff0c;Tomcat是一个软件&#xff0c;所有的项目都能在Tomcat上加载运行&#xff0c;Tomcat最核心的就是Servlet集合&#xff0c;本身就是HashMap。Tomcat需要支持Servlet&#xff0c;所以有servlet底层的资源&#xff1a;HttpServlet抽象类、HttpRequest和HttpRespon…

高等数学-积分

一、不定积分 定理&#xff1a;如果函数f(x)在区间I上连续&#xff0c;那么f(x)在区间I上一定有原函数&#xff0c;即一定存在区间I上的可导函数F(x)&#xff0c;使得F(x)f(x) &#xff0c;x∈I 简单地说&#xff1a;连续函数必有原函数。 极限lim*0->x {[∫*0^x sin(t^2)…

IOS平台Unity3D AOT全局模块结构分析

分析背景 由于IOS平台中不允许执行动态代码&#xff0c;Unity 4.6之前的版本在IOS平台中采用了AOT的处理方式&#xff0c;提前将C#代码静态编译为机器识别的二进制机器码。Unity引擎4.6之前的版本中IOS框架采用了Mono的AOT机制实现静态编译和处理&#xff0c;本文针对全局AOT模…

CyberSecAsia专访CertiK首席安全官:区块链行业亟需“安全优先”开发范式

近日&#xff0c;权威网络安全媒体CyberSecAsia发布了对CertiK首席安全官Wang Tielei博士的专访&#xff0c;双方围绕企业在进军区块链领域时所面临的关键安全风险与防御策略展开深入探讨。 Wang博士在采访中指出&#xff0c;跨链桥攻击、智能合约漏洞以及私钥管理不当&#x…