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.pswp.cn/pingmian/76543.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/76543.shtml
英文地址,請注明出處:http://en.pswp.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的一上午的極限…