HTML — 过渡与动画

HTML过渡与动画是提升网页交互体验的核心技术,主要通过CSS实现动态效果。

过渡

CSS过渡(Transition)介绍

适用于元素属性变化时的平滑渐变效果,如悬停变色、尺寸调整。通过定义transition-property(过渡属性)、duration(持续时间)、timing-function(缓动函数)触发条件(如:hover)。仅需两段状态(开始/结束),适合简单交互。


 过渡属性

  • transition-property:指定要过渡的CSS属性(如width、opacity等),默认all。

  • transition-duration:过渡持续时间(如2s),必需属性。

  • transition-timing-function:速度曲线(如ease、linear)。

  • transition-delay:延迟开始时间(如0.5s)。


基本示例

悬停改变宽度:

.box {width: 100px;transition: width 2s ease-in-out;
}
.box:hover {width: 200px;
}

此代码的作用为:鼠标悬停时,元素宽度在2秒内以缓入缓出效果从100px过渡到200px。


多属性过渡

同时过渡背景色和字体大小:

.button {background: blue;font-size: 16px;transition: background 0.5s ease-out, font-size 0.3s linear;
}
.button:hover {background: red;font-size: 20px;
}

时间函数(Timing Functions)

  • 内置曲线:ease(默认)、linear、ease-inease-out、ease-in-out。

  • 自定义:cubic-bezier(0.25, 0.1, 0.25, 1)。

.transition {transition: transform 1s cubic-bezier(0.68, -0.55, 0.27, 1.55);
}

延迟与触发

延迟0.5秒后开始过渡:

.element {transition: opacity 1s ease 0.5s;
}
.element:hover {opacity: 0.5;
}

过渡总结

CSS过渡是一种实现元素属性平滑变化的动画技术,通过自动补间动画增强用户交互体验。其核心是让CSS属性值的变化(如颜色、尺寸等)从初始状态逐步过渡到终止状态,而非瞬间切换。

工作原理:过渡需触发条件(如:hover、:active或JavaScript修改属性),通过四个属性控制效果:

transition-property:指定应用过渡的CSS属性(如width,all表示全部属性)。

transition-duration:定义动画时长(如2s)。

transition-timing-function:控制速度曲线,如匀速(linear)、缓入(ease-in)。

transition-delay:设置动画延迟启动时间。

适用场景:适合简单状态变换,如按钮悬停效果、菜单展开等。需注意:

避免对width/height等影响布局的属性过渡,优先使用transform(如缩放)以提升性能。

非继承属性需明确指定过渡对象。

过渡相比CSS动画更轻量,但缺乏多关键帧控制,复杂动画建议使用animation属性。合理使用过渡能显著提升界面流畅性与交互友好度。


动画

CSS动画(Animation)介绍

通过@keyframes定义复杂动画序列,支持多阶段状态控制,可实现无限循环、反向播放等特性。需绑定动画名称、时长、缓动曲线及animation-iteration-count(执行次数)。适合加载动画、连续特效等场景。


 定义关键帧:

@keyframes slide-in {from {transform: translateX(-100%);}to {transform: translateX(0);}
}/* 或使用百分比 */
@keyframes pulse {0% { transform: scale(1); }50% { transform: scale(1.2); }100% { transform: scale(1); }
}

动画属性

  • animation-name: 关键帧名称(如slide-in)。

  • animation-duration: 动画时长(如2s)。

  • animation-timing-function: 速度曲线(同过渡)。

  • animation-delay: 延迟时间。

  • animation-iteration-count: 播放次数(infinite表示无限循环)。

  • animation-direction: 播放方向(normal, reverse, alternate)。

  • animation-fill-mode: 动画结束后样式(forwards保持最后一帧)。

  • animation-play-state: 控制播放/暂停(paused, running)。


常见动画效果示例

淡入淡出:

@keyframes fade {from { opacity: 0; }to { opacity: 1; }
}
.element {animation: fade 0.8s ease-in;
}

旋转加载:

@keyframes spin {to { transform: rotate(360deg); }
}
.loader {animation: spin 1s linear infinite;
}

滑动菜单:

.menu {transform: translateX(-100%);transition: transform 0.3s ease-out;
}
.menu.active {transform: translateX(0);
}

动画总结

CSS动画(@keyframes)是创建复杂动态效果的核心技术,通过定义动画序列实现元素状态逐帧变化。使用@keyframes 动画名声明动画,通过百分比(0%-100%)或from/to定义多个关键帧状态。每个帧内编写CSS属性变化(如transform、opacity等),浏览器自动补间生成中间帧。

动画属性控制通过animation复合属性绑定动画:
animation-name: 关联@keyframes名称
duration: 动画周期(必需)
timing-function: 速度曲线(ease/in-out/cubic-bezier)
delay: 启动延迟
iteration-count: 播放次数(infinite无限循环)
direction: 播放方向(alternate反向交替)
fill-mode: 结束状态保持(forwards保留最后一帧)
play-state: 暂停/运行控制

优势:硬件加速优化(使用transform/opacity)、响应式适配、代码简洁。适用于加载动画、交互反馈、页面过渡等场景,是增强用户体验的重要工具。

总结

     CSS过渡和关键帧动画是实现网页动态效果的两种核心技术。CSS过渡通过平滑改变元素属性值实现动画,适用于简单的状态切换场景。

     其核心属性包括transition-property指定过渡属性,transition-duration设定持续时间,transition-timing-function控制速度曲线(如ease-in-out),以及transition-delay定义延迟时间。过渡需要触发条件,常见方式包括:hover伪类或JavaScript修改样式。例如按钮悬停时颜色渐变,通过设置transition: background-color 0.3s即可实现。

     动画则通过@keyframes规则创建更复杂的动画序列,允许在动画周期内定义多个中间状态。开发者需先声明关键帧名称及其在不同百分比点的样式,再通过animation属性将动画绑定到元素。关键属性包含animation-name关联关键帧,animation-duration设置总时长,animation-iteration-count控制循环次数,animation-direction定义播放方向。与过渡不同,关键帧动画可自动播放或通过事件触发,适合实现加载旋转、轮播图等需要多阶段控制的场景。

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

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

相关文章

跨站请求是什么?

介绍 跨站请求(Cross-Site Request)通常是指浏览器在访问一个网站时,向另一个域名的网站发送请求的行为。这个概念在 Web 安全中非常重要,尤其是在涉及到“跨站请求伪造(CSRF)”和“跨域资源共享&#xff…

Web攻防—SSRF服务端请求伪造Gopher伪协议无回显利用

前言 重学Top10的第二篇,希望各位大佬不要见笑。 SSRF原理 SSRF又叫服务端请求伪造,是一种由服务端发起的恶意请求,SSRF发生在应用程序允许攻击者诱使服务器向任意域或资源发送未经授权的请求时。服务器充当代理,执行攻击者构造…

Hibernate:让对象与数据库无缝对话的全自动ORM框架

一、为什么需要全自动ORM? 在手动编写SQL的时代,开发者需要在Java代码和数据库表之间来回切换: // Java对象 public class User {private Long id;private String name;// getters and setters }// SQL语句 SELECT * FROM user WHERE id ?…

C语言超详细指针知识(一)

通过前面一段时间C语言的学习,我们了解了数组,函数,操作符等的相关知识,今天我们将要开始进行指针的学习,这是C语言中较难掌握的一个部分,一定要认真学习!!! 1.内存与地址…

程序化广告行业(70/89):ABTester系统助力落地页优化实践

程序化广告行业(70/89):ABTester系统助力落地页优化实践 在程序化广告领域摸爬滚打多年,深知持续学习和知识共享的重要性。写这篇博客,就是希望能和大家一起深入探索程序化广告行业,共同学习、共同进步。今…

项目管理(高软56)

系列文章目录 项目管理 文章目录 系列文章目录前言一、进度管理二、配置管理三、质量四、风险管理五、真题总结 前言 本节主要讲项目管理知识,这些知识听的有点意思啊。对于技术人想创业,单干的都很有必要听听。 一、进度管理 二、配置管理 三、质量 四…

常见的后缀名

.exe .exe(“executable”(可执行的))是 Windows 操作系统中最常见的可执行文件扩展名。此类文件包含了计算机能够直接运行的机器码指令。当用户双击 .exe 文件时,操作系统会读取其中的指令并执行相应的程序或任务。…

XILINX DDR3专题---(1)IP核时钟框架介绍

1.什么是Reference Clock,这个时钟一定是200MHz吗? 2.为什么APP_DATA是128bit,怎么算出来的? 3.APP :MEM的比值一定是1:4吗? 4.NO BUFFER是什么意思? 5.什么情况下Reference Clock的时钟源可…

Doris 安装部署、实际应用及优化实践:对比 ClickHouse 的深度解析

在实时分析、报表系统以及高并发 OLAP 查询等场景中,列式存储数据库因其卓越的查询性能逐渐成为主流。Doris 和 ClickHouse 是近年来最受欢迎的两款开源 OLAP 引擎,本文将系统介绍 Doris 的安装部署、应用场景及优化实践,并与 ClickHouse 做一…

OracleLinuxR5U5系统重启后启动数据库oracle23ai

1、切换到oracle用户 [rootOracleLinux-R9-U5 ~]# su oracle2、查看oracle是否配置了ORACLE_SID [oracleOracleLinux-R9-U5 root]$ cd ~ [oracleOracleLinux-R9-U5 ~]$ cat .bash_profile3、输出内容如下: [oracleOracleLinux-R9-U5 ~]$ cat .bash_profile # .ba…

【正点原子】STM32MP257 同构多核架构下的 ADC 电压采集与处理应用开发实战

在嵌入式系统中,ADC模拟电压的读取是常见的需求。如何高效、并发、且可控地完成数据采集与处理?本篇文章通过双线程分别绑定在 Linux 系统的不同 CPU 核心上,采集 /sys/bus/iio 接口的 ADC 原始值与缩放系数 scale,并在另一个核上…

电商用户购物行为分析:基于K-Means聚类与分类验证的完整流程

随着电商行业的快速发展,用户行为分析成为企业优化营销策略、提升用户体验的重要手段。通过分析用户的购物行为数据,企业可以挖掘出用户群体的消费特征和行为模式,从而制定更加精准的营销策略。本文将详细介绍一个基于Python实现的电商用户购物行为分析系统,涵盖数据预处理…

AMGCL库的Backends及使用示例

AMGCL库的Backends及使用示例 AMGCL是一个用于解决大型稀疏线性方程组的C库,它提供了多种后端(backends)实现,允许用户根据不同的硬件和性能需求选择合适的计算后端。 AMGCL支持的主要Backends 内置Backends: builtin - 默认的纯C实现block - 支持块状…

Express中间件(Middleware)详解:从零开始掌握(3)

实用中间件模式25例 1. 基础增强模式 请求属性扩展 function extendRequest() {return (req, res, next) > {req.getClientLanguage () > {return req.headers[accept-language]?.split(,)[0] || en;};next();}; } 响应时间头 function responseTime() {return (r…

05--MQTT物联网协议

一、MQTT的概念 MQTT 协议快速入门 2025:基础知识和实用教程 | EMQ 1.MQTT(Message Queuing Telemetry Transport)是一种轻量级、基于发布-订阅模式的消息传输协议,适用于资源受限的设备和低带宽、高延迟或不稳定的网络环境。它…

数据结构与算法——链表OJ题详解(2)

文章目录 一、前言二、OJ续享2.1相交链表2.2环形链表12.2环形链表2 三、总结 一、前言 哦了兄弟们,咱们上次在详解链表OJ题的时候,有一部分OJ题呢up并没有整理完,这一个星期呢,up也是在不断的学习并且沉淀着,也是终于…

SQL Server AlwaysOn (SQL 查询数据详解及监控用途)

修正后的完整查询 SELECT ar.replica_server_name AS [副本名称],ar.availability_mode_desc AS [同步模式],DB_NAME(dbr.database_id) AS [数据库名称],dbr.database_state_desc AS [数据库状态],dbr.synchronization_state_desc AS [同步状态],dbr.synchronization_health_d…

力扣热题100刷题day63|49.字母异位词分组

目录 一、哈希表相关理论 二、思路 核心思路 三、相关题目 四、总结 一、哈希表相关理论 代码随想录刷题day15|(哈希表篇)242.有效的字母异位词、383.赎金信-CSDN博客 二、思路 首先,创建一个map集合,遍历字符串数组&…

爱普生可编程晶振SG8201CJ和SG8200CJ在胃镜机器人发挥重要作用

在医疗机器人技术高速发展的今天,胃镜机器人作为胃肠道疾病诊断与治疗的创新设备,正逐渐改变传统诊疗模式。其复杂精密的系统需要精准的时间同步与稳定的信号输出,胃镜机器人是一种先进的医疗设备,用于无创性地检查胃部疾病。与传…

Ubuntu22环境下,Docker部署阿里FunASR的gpu版本

番外: 随着deepseek的爆火,人工智能相关的开发变得异常火爆,相关的大模型开发很常见的agent智能体需要ASR语音识别的功能,阿里开源的FunASR几乎是把一个商业的项目放给我们使用了。那么我们项目中的生产环境怎么部署gpu版本的语音识别服务呢?经过跟deepseek的一上午的极限…