第 25 章 CSS3 過渡效果

来源:http://www.cnblogs.com/zfc2201/archive/2016/05/01/5450212.html
-Advertisement-
Play Games

學習要點: 1.過渡簡介 2.transition-property 3.transition-duration 4.transition-timing-function 5.transition-delay 6.簡寫和版本 主講教師:李炎恢 本章主要探討 HTML5 中 CSS3 的過渡效果,通過 ...


學習要點:

1.過渡簡介

2.transition-property

3.transition-duration

4.transition-timing-function

5.transition-delay

6.簡寫和版本

 

主講教師:李炎恢 

 

本章主要探討 HTML5 中 CSS3 的過渡效果,通過這個功能可以不藉助 JavaScript 來實現簡單的用戶交互功能。

 

一.過渡簡介

過渡效果一般是通過一些簡單的 CSS 動作觸發平滑過渡功能,比如::hover、:focus、:active、:checked 等。CSS3 提供了 transition 屬性來實現這個過渡功能,主要屬性如下表:

屬性

說明

transition-property

指定過渡或動態模擬的 CSS 屬性

transition-duration

指定完成過渡所需的時間

transition-timing-function

指定過渡的函數

transition-delay

指定過渡開始出現的延遲時間

transition

簡寫形式,按照上門四個屬性值連寫

 我們先創建一個沒有過渡效果的元素,然後通過:hover 來觸發它。在沒有任何過渡效果的觸發,會立即生硬的執行觸發。

//設置元素樣式 

div {
    width: 200px;
    height: 200px;
    border: 1px solid green;
}

//滑鼠懸停後背景變黑,文字變白 

div:hover {
    background-color: black;
    color: white;
    margin-left: 50px;
}

 

二.transition-property

首先,設置過渡的第一個屬性就是指定過渡的屬性。同樣,你需要指定你要過渡某個元素的兩套樣式用於用戶和頁面的交互。那麼就使用 transition-property 屬性,詳細屬性值如下表:

屬性值

說明

none

沒有指定任何樣式

all

預設值,指定元素所支持 transition-property 屬性的樣式

指定樣式

指定支持 transition-property 的樣式

從上門的列表中來看,一般來說,none 用於本身有過渡樣式從而取消。而 all,則是支持所有 transition-property 樣式,還有一種是指定 transition-property 中的某些樣式。那麼 transition-proerty 支持的樣式有哪些?如下表所示:

樣式名稱

樣式類型

background-color

color(顏色)

background-image

only gradients(漸變)

background-position

percentage, length(百分比,長度值)

border-bottom-color

color

border-bottom-width

length

border-color

color

border-left-color

color

border-left-width

length

border-right-color

color

border-right-width

length

border-spacing

length

border-top-color

color

border-top-width

length

border-width

length

bottom

length, percentage

color

color

crop

rectangle

font-size

length, percentage

font-weight

number

grid-*

various

height

length, percentage

left

length, percentage

letter-spacing

length

line-height

number, length, percentage

margin-bottom

length

margin-left

length

margin-right

length

margin-top

length

max-height

length, percentage

max-width

length, percentage

min-height

length, percentage

min-width

length, percentage

opacity

number

outline-color

color

outline-offset

integer

outline-width

length

padding-bottom

length

padding-left

length

padding-right

length

padding-top

length

right

length, percentage

text-indent

length, percentage

text-shadow

shadow

top

length, percentage

vertical-align

keywords, length, percentage

visibility

visibility

width

length, percentage

word-spacing

length, percentage

z-index

integer

zoom

number

//設置背景和文字顏色採用過渡效果 

transition-property: background-color, color, margin-left;

 

三.transition-duration

如果單純設置過渡的樣式,還不能夠立刻實現效果。必須加上過渡所需的時間,因為預設情況下過渡時間為 0。

//設置過渡時間為 1 秒鐘,如果是半秒鐘可以設置為.5s

transition-duration: 1s;

 

四.transition-timing-function

當過渡效果運行時,比如產生緩動效果。預設情況下的緩動是:元素樣式從初始狀態過渡到終止狀態時速度由快到慢,逐漸變慢,即 ease。也是預設值,其他幾種緩動方式如下表所示:

//恆定速度

transition-timing-function: linear;

以上五種都是設定好的屬性值,我們也可以自定義這個緩動。使用 cubic-bezier() 屬性值,裡面傳遞四個參數 p0,p1,p2,p3,值在 0~1 之間。

//自定義緩動

transition-timing-function: cubic-bezier(0.25, 0.67, 0.11, 0.55);

至於具體這些數值乾什麼的,怎麼才可以精確得到相關的信息,這個要瞭解電腦圖形學中的三次貝塞爾曲線的相關知識,類似與 photoshop 中的曲線調色。這裡我們忽略。

還有一種不是平滑過渡,是跳躍式過渡,屬性值為:steps(n,type)。第一個值是一個數值,表示跳躍幾次。第二個值是 start 或者 end,可選值。表示開始時跳躍,還是結束時跳躍。

//跳躍 10 次至結束

transition-timing-function: steps(10,end);

 

五.transition-delay

這個屬性可以設置一個過渡延遲效果,就是效果在設置的延遲時間後再執行。使用 transition-delay 屬性值。如果有多個樣式效果,可以設置多個延遲時間,以空格隔開。

//設置延遲效果

transition-delay: 0s, 1s, 0s;

 

六.簡寫和版本

我可以直接使用 transition 來簡寫,有兩種形式的簡寫。第一種是,每個樣式單獨聲明;第二種是不去考慮樣式,即使用 all 全部聲明。

//單獨聲明

transition: background-color 1s ease 0s, color 1s ease 0s, margin-left 1s ease 0s;

//如果每個樣式都是統一的,直接使用 all

transition: all 1s ease 0s;

為了相容舊版本,需要加上相應的瀏覽器首碼,版本信息如下表:

 

Opera

Firefox

Chrome

Safari

IE

支持需帶首碼

15 ~ 22

5 ~ 15

4 ~ 25

3.1 ~ 6

支持不帶首碼

23+

16+

26+

6.1+

10.0+

 //相容完整版

-webkit-transition: all 1s ease 0s;
-moz-transition: all 1s ease 0s;
-o-transition: all 1s ease 0s;
-ms-transition: all 1s ease 0s;
transition: all 1s ease 0s;

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 學習要點: 1.混合過度版 主講教師:李炎恢 本章主要探討 HTML5 中 CSS3 提供的用來實現未來響應式彈性伸縮佈局方案,這裡做一個初步的瞭解。 一.混合過渡版 混合版本的 Flexbox 模型是 2011 年提出的工作草案,主要是針對 IE10 瀏覽器實現的伸縮佈局效果,其功能和舊版本的屬性 ...
  • 學習要點: 1.佈局簡介 2.舊版本 主講教師:李炎恢 本章主要探討 HTML5 中 CSS3 提供的用來實現未來響應式彈性伸縮佈局方案,這裡做一個初步的瞭解。 一.佈局簡介 CSS3 提供一種嶄新的佈局方式:Flexbox 佈局,即彈性伸縮佈局模型(Flexible Box)。用來提供一個更加有效 ...
  • Transform-變形 CSS3 2D Transform translate() 移動:將HTML元素在x-y軸平面上做位移,且不會影響到其他元素 translate(x,y)水平方向和垂直方向同時移動(也就是X軸和Y軸同時移動) translateX(x)僅水平方向移動(X軸移動) trans ...
  • 學習要點: 1.早期多列問題 2.屬性及版本 3.屬性解釋 主講教師:李炎恢 本章主要探討 HTML5 中 CSS3 提供的多列佈局,通過多列佈局我們方便的創建流體的多列佈局。 一.早期多列問題 我們有時想佈局成報紙、雜誌那樣的多列方式(至少兩列,一般三列以上),但早期 CSS 提供的佈局方式都有著 ...
  • 學習要點: 1.定位佈局 2.box-sizing 3.resize 主講教師:李炎恢 本章主要探討 HTML5 中 CSS 早期所使用的傳統佈局,很多情況下,這些佈局方式還是非常有用的。 一.定位佈局 在使用定位佈局前,我們先瞭解一下定位屬性的用法。CSS2 提供了 position 屬性來實現元 ...
  • 列表組可以用來製作列表清單、垂直導航等效果,也可以配合其他的組件製作出更漂亮的組件,列表組在bootstrap框架中也是一個獨立的組件,所以也對應有自己獨立源碼: LESS:list-group.less SASS:_list-group.scss 列表組看上去就是去掉了列表符號的列表項,並且配上一... ...
  • 學習要點: 1.佈局模型 2.表格佈局 3.浮動佈局 主講教師:李炎恢 本章主要探討 HTML5 中 CSS 早期所使用的傳統佈局,很多情況下,這些佈局方式還是非常有用的。 一.佈局模型 在早期沒有平板和智能手機等移動設備大行其道的時期,Web 頁面的設計主要是面向 PC 端電腦解析度展開的。這種分 ...
  • 學習要點: 1.動畫簡介 2.屬性詳解 3.簡寫和版本 主講教師:李炎恢 本章主要探討 HTML5 中 CSS3 的動畫效果,可以通過類似 Flash 那樣的關鍵幀模式控制運行。 一.動畫簡介 CSS3 提供了類似 Flash 關鍵幀控制的動畫效果,通過 animation 屬性實現。那麼之前的 t ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...