這里是云端源想IT,幫你輕松學IT”
嗨~ 今天的你過得還好嗎?
找一顆屬于你自己的星星吧
它會給你指引方向
一直到天明
- 2024.04.12 -
在網頁設計中,動畫效果是吸引用戶眼球的重要手段。CSS動畫中的過渡屬性(transition)和動畫(animation)屬性,就像是設計師手中的魔法棒,可以讓元素在頁面上動起來,增加視覺吸引力,提升用戶體驗。
今天,我們就來揭秘這兩個神奇的屬性,看看它們是如何讓網頁變得生動活潑的。
過渡屬性是CSS中的一種基本動畫效果,它可以讓元素的某個屬性在一定的時間內平滑地從一個值變化到另一個值。這種變化可以是顏色、大小、位置等任何可以改變的屬性。
屬性值
1、transition-property:指定要執行過渡的屬性
2、transition-duration:指定過渡效果的持續時間
3、transition-delay:過渡效果的延遲,等待一段時間后在執行過渡
4、transition-timing-function:過渡的時序函數
transition-timing-function: linear;
transition-timing-function: ease;
transition-timing-function: ease-in;
transition-timing-function: ease-out;
transition-timing-function: ease-in-out;
transition-timing-function: cubic-bezier(0.17, 1.79, 0.68, -0.69);
end,在時間結束時執行過渡(默認值);start,在時間開始時執行過渡
/* transition-timing-function: steps(2, end); */
transition-timing-function: steps(2);
transition-timing-function: steps(2, start);
5、transition:可以同時設置過渡相關的所有屬性
只有一個要求,如果要寫延遲,則兩個時間中第一個是持續時間,第二個是延遲時間。
示例:
/* transition: margin-left 2s 1s; */
transition-property: margin-left;
transition-duration: 2s;
transition-delay: 1s;
CSS中的animation屬性是一個功能強大的工具,它允許開發者通過純CSS的方式創建豐富的動畫效果,從而增強網頁的交互性和視覺吸引力。
動畫(animation)是CSS中的另一種屬性,它比過渡更強大,可以創建更復雜的動畫效果。動畫允許我們定義關鍵幀,然后在這些關鍵幀之間創建平滑的過渡。
這意味著,我們可以讓元素在一段時間內完成一系列的樣式變化,從而創建出更豐富、更生動的動畫效果。
設置動畫效果,必須先要設置一個關鍵幀,關鍵幀設置了動畫執行每一個步驟
@keyframes test {
from {
margin-left: 0;
}
to {
margin-left: 900px;
}
}
屬性值:
1、animation-name:此屬性指定要綁定到選擇器的關鍵幀名稱。關鍵幀是定義動畫序列的地方,通過@keyframes規則創建。
2、animation-duration:定義動畫完成一個周期所需的時間長度,可以設置成秒(s)或毫秒(ms)。必須明確指定該屬性,因為默認值是0,如果設置為0,則動畫不會播放。
3、animation-timing-function:指定動畫如何完成一個周期的時間曲線,例如線性、緩動等。這決定了動畫的速度在整個周期內是如何變化的。
4、animation-delay:設定動畫在開始前延遲的時間,同樣可設置單位為秒或毫秒。可以用來延遲動畫的開始時間。
5、animation-iteration-count:確定動畫循環播放的次數,可以是特定的數字或者infinite表示無限循環。
6、animation-direction:規定動畫在每次循環時是否反向播放,常用的值有normal(正常)和alternate(交替)。
想要快速入門前端開發嗎?推薦一個前端開發基礎課程,這個老師講的特別好,零基礎學習無壓力,知識點結合代碼,邊學邊練,可以免費試看試學,還有各種輔助工具和資料,非常適合新手!點這里前往學習哦!云端源想
7、animation-fill-mode:定義動畫在開始前和結束后的狀態,比如可見或隱藏。
8、animation-play-state:控制動畫是否正在運行或暫停,常見的值有running(運行)和paused(暫停)。
此外,在使用animation屬性時,至少需要指定兩個屬性:動畫的名稱和動畫的持續時間。其他屬性可以根據需要選擇性地設置,以達到預期的動畫效果。
示例
/* animation-name: test;
animation-duration: 2s;
animation-delay: 2s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
animation-fill-mode: both; */
animation: test 2s 2s linear infinite alternate both;
總結來說,CSS的animation屬性提供了一種在不使用JavaScript的情況下,通過純CSS實現網頁元素動畫的方式。它能夠使元素從一種樣式平滑過渡到另一種樣式,增強用戶的視覺體驗。
通過這篇文章,我們了解了CSS動畫中的過渡屬性和動畫屬性的基本概念和應用。它們可以幫助我們創建出各種吸引人的動畫效果,讓我們的網頁更加生動有趣。
記住,好的動畫效果應該是恰到好處的,過多的動畫可能會讓用戶感到困擾。所以,讓我們一起用好這兩個屬性,創造出更好的用戶體驗吧!
我們下期再見!
END
文案編輯|云端學長
文案配圖|云端學長
內容由:云端源想分享
周在給學生講授JavaScript課程中setInterval方法時,想到了我們在網上看到的各類GIF動圖比較有意思,就將其引入到教學中,教學內容設計如果通過HTML5與JavaScript實現網頁類似GIF效果的動態圖。于是在網上搜集了部分gif格式動圖,將每一個Gif動圖分解為一組jpg格式圖片,再采用setInterval與html5 Canvas進行動畫的實現。通過學習可以讓學生進一步了解canvas動畫實現的過程與原理。并將其發布到頭條,也希望對有興趣的初學者了解HTML5 Canvas等有所幫助。圖片分組圖片素材如下:
素材一
實現動畫的素材我們已經給出,主要通過gif動圖導出一組圖片,下面對html5動畫實現過程進行簡單說明。
實現其動畫的基本思路是通過HTML5提供的canvas元素進行圖片的繪制與展示,借助setInterval方法實現間隔指定時間調用新的圖片實現重新繪圖。其中繪圖主要使用drawImage方法進行繪圖,最終通過圖片依次重繪實現動畫效果。具體實現過程如下:
在頁面body部分添加Canva標簽,設置其id屬性為canv,寬度為600,高度為400,編寫代碼描述如下圖:
添加畫布元素
canvas瀏覽效果
使用Canvas借助JavaScript提供的drawImage方法進行繪圖,需要提供要繪制的圖片資源即繪圖的坐標位置。該方法原型如下:
drawImage方法原型
因此我們需要加載圖片資源,本例由于需要調用多個img實現定時不同圖片的繪制,因此我們可以使用數組存儲所加載的圖片資源。本例圖片數量為14,因此我們數組長度為14。使用素組存儲圖片實現代碼如下:
加載圖片資源代碼
本例設計在頁面加載時自動播放動畫,因此需要在JavaScript腳本中添加頁面onload事件,在事件中編寫繪圖相關代碼,主要代碼包括獲取畫布canva與實例化繪圖對象context。部分代碼描述如下:
onload事件及繪圖初始化
使用setInterval方法實現動畫主要需要定義回調函數與回調函數觸發執行的周期,本例中我們使用匿名函數作為回調函數,觸發周期設置為100毫秒。setInterval函數定義如下:
setInterval函數
在定義完函數之后可在其匿名函數函數體部分寫入繪圖方法dramImage(),實現周期調用不同圖片資源進行繪圖,最終展示出動畫效果。為了保證循環調用14張圖片,我們需要設置一計數全局變量i,由于我們圖片采用數組存儲,下標為數組,且從0-13進行編號,因此當計數值小于13時自動+1,指向下一數組下標,當為13時,設置計數值為0,回到數組第一元素,最終實現數組訪問下標的循環。setInterval實現完整代碼如下:
setInterval完整代碼
HTML動畫效果展示
本頭條號長期關注編程資訊分享;編程課程、素材、代碼分享及編程培訓。如果您對以上方面有興趣或代碼錯誤、建議與意見,可以聯系作者,共同探討。期待大家關注!如需案例完整代碼請關注并私信,往期前端設計文章鏈接如下:
們經常看到許多網站或者H5的動畫都做成了整屏切換的形式,為提高用戶體驗,會在首屏頁面下方放上一個動態的向下箭頭來提示用戶切換至下一屏。
動態箭頭的效果圖如下:
那么這種效果是如何實現的呢?
其實非常簡單,在CSS3中提供了animation屬性,專門用于動畫。要使用這個屬性,需要先了解@keyframes的創建規則,在 @keyframes 中規定某項 CSS 樣式,就能創建由當前樣式逐漸改為新樣式的動畫效果。
在這個動畫中,我們能夠看出在整個動畫中改變的是箭頭的位置,所以我們在創建動畫時,只需要給定箭頭的起始位置,利用animation讓他動起來就可以了。
接下來,我們一步一步完成。
1、首先找到你所需要的箭頭圖片,將他利用定位的方式放在首屏的底部。
a)html代碼(將圖片以背景或者插入圖片的形式放入標簽內,demo以背景形式展示)
b)css代碼(利用定位將箭頭放在首屏的底部適當位置,網站中大部分情況會進行左右居中)
2、然后進行動畫創建,最簡單的方式就是只給定初始的以及結束的css樣式即可。
css 代碼
標注出來的為動畫的自定義名稱,可以根據你的動畫行為來定義。
0%為初始狀態,即剛開始動畫時。
100%為結束狀態,即動畫進行到100%時。
動畫改變了箭頭的底部位置,由距離底部80像素變到了距離底部0像素。
3、接下來利用animation屬性讓他具有動畫效果
css代碼:
第一個參數表示你所使用的動畫的名稱(即我們創建的動畫的動畫名稱),
第二個參數表示動畫完成的時間(即由0%到100%所用的時間),
第三個參數表示動畫執行的次數(可以為任意數字,infinite表示規定動畫無限次播放),因此造成了一個動態的箭頭的視覺效果。
通過以上三個步驟即可完成這個簡單的動畫效果,很多的動畫效果都可以通過創建動畫的方式來實現。
原文地址北京市盛世陽光文化傳播有限責任公司:http://www.gonet.com.cn/webduirshow-140.html
*請認真填寫需求信息,我們會在24小時內與您取得聯系。