您好,登錄后才能下訂單哦!
這篇文章運用簡單易懂的例子給大家介紹HTML與CSS中的動畫模塊是什么,代碼非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
一. 動畫模塊
1.過渡和動畫之間的異同
1.1不同點
過渡必須人為的觸發才會執行動畫
動畫不需要人為的觸發就可以執行動畫
1.2相同點
過渡和動畫都是用來給元素添加動畫的
過渡和動畫都是系統新增的一些屬性
過渡和動畫都需要滿足三要素才會有動畫效果
2 動畫三要素
2.1告訴系統需要執行哪個動畫
2.2告訴系統我們需要自己創建一個名稱叫做lnj的動畫
2.3告訴系統動畫持續的時長
p{ width: 100px; height: 50px; background-color: red; /*1.告訴系統需要執行哪個動畫*/ animation-name: lnj; /*3.告訴系統動畫持續的時長*/ animation-duration: 3s; } /*2.告訴系統我們需要自己創建一個名稱叫做lnj的動畫*/ @keyframes lnj { from{ margin-left: 0; } to{ margin-left: 500px; } }
二.動畫模塊 - 其它屬性 (上)
p { width: 100px; height: 50px; background-color: red; animation-name: sport; animation-duration: 2s; /*告訴系統多少秒之后開始執行動畫*/ /*animation-delay: 2s;*/ /*告訴系統動畫執行的速度*/ animation-timing-function: linear; /*告訴系統動畫需要執行幾次*/ animation-iteration-count: 3; //infinite : 無限的 /*告訴系統是否需要執行往返動畫 取值: normal, 默認的取值, 執行完一次之后回到起點繼續執行下一次 alternate, 往返動畫, 執行完一次之后往回執行下一次 */ animation-direction: alternate; } @keyframes sport { from{ margin-left: 0; } to{ margin-left: 500px; } } p:hover{ /* 告訴系統當前動畫是否需要暫停 取值: running: 執行動畫,默認取值 paused: 暫停動畫, 當動畫執行時,鼠標hover到p上方時,動畫停止,鼠標移開,則繼續動畫; */ animation-play-state: paused; }
三.動畫模塊 - 其它屬性 (下)
.box2{ width: 200px; height: 200px; background-color: blue; margin: 100px auto; animation-name: myRotate; animation-duration: 5s; animation-delay: 2s; /* 通過我們的觀察, 動畫是有一定的狀態的 1.等待狀態 2.執行狀態 3.結束狀態 */ /* animation-fill-mode作用: 指定動畫等待狀態和結束狀態的樣式 取值: none: 不做任何改變 forwards: 讓元素結束狀態保持動畫最后一幀的樣式; //向前的 backwards: 讓元素等待狀態的時候顯示動畫第一幀的樣式; // 向后的 both: 讓元素等待狀態顯示動畫第一幀的樣式, 讓元素結束狀態保持動畫最后一幀的樣式 */ /*animation-fill-mode: backwards;*/ /*animation-fill-mode: forwards;*/ animation-fill-mode: both; } @keyframes myRotate { 0%{ transform: rotate(10deg); } 50%{ transform: rotate(50deg); } 100%{ transform: rotate(70deg); } } animation-fill-mode
四. 動畫模塊-連寫
1.動畫模塊連寫格式
animation:動畫名稱 動畫時長 動畫運動速度 延遲時間 執行次數 往返動畫;
2.動畫模塊連寫格式的簡寫
animation:動畫名稱 動畫時長;
五. 云層效果
<html lang="en"> <head> <meta charset="UTF-8"> <title>104-動畫模塊-云層效果</title> <style> *{ margin: 0; padding: 0; } ul{ height: 400px; background-color: skyblue; margin-top: 100px; animation: change 5s linear 0s infinite alternate; position: relative; overflow: hidden; //讓屏幕下方的滾動條隱藏掉 } ul li{ list-style: none; width: 400%; //設置li的寬度為屏幕的四倍,移動最多的為屏幕寬度的三倍,為保證屏幕內一直有云朵,故多設置一個屏幕的寬度的云朵 height: 100%; position: absolute; // 設置子絕父相后,三個li會重疊到一起 left: 0; top: 0; } ul li:nth-child(1){ background-image: url("images/cloud_one.png"); animation: one 30s linear 0s infinite alternate; } ul li:nth-child(2){ background-image: url("images/cloud_two.png"); animation: two 30s linear 0s infinite alternate; } ul li:nth-child(3){ background-image: url("images/cloud_three.png"); animation: three 30s linear 0s infinite alternate; } @keyframes change { from{ background-color: skyblue; } to{ background-color: black; } } @keyframes one { from{ margin-left: 0; } to{ margin-left: -100%; //如果先往右移動,又出現屏幕上有一節沒云朵的情況,故先往左移動; } } @keyframes two { from{ margin-left: 0; } to{ margin-left: -200%; //由于動畫的時間都一樣,但是運動的距離不一樣,又由于都是線性速度,所以就會出現有點運動快,有的運動慢! } } @keyframes three { from{ margin-left: 0; } to{ margin-left: -300%; } } </style> </head> <body> <ul> <li></li> <li></li> <li></li> </ul> </body> </html>
六. 無限滾動
<html lang="en"> <head> <meta charset="UTF-8"> <title>105-動畫模塊-無限滾動</title> <style> *{ margin: 0; padding: 0; } p{ width: 600px; height: 188px; border: 1px solid #000; margin: 100px auto; overflow: hidden; } ul{ width: 2000px; //這個無限滾動原理就是ul做動畫 height: 188px; background-color: black; //背景顏色黑色,當li的透明度為半透明時,li就會有黑色蒙版效果 animation: move 10s linear 0s infinite normal; //name 時間 速度 延時 無限重復 是否往返(normal代表不往返) } ul li{ float: left; list-style: none; width: 300px; height: 188px; background-color: red; border: 1px solid #000; box-sizing: border-box; } ul:hover{ /*動畫添加給誰, 就讓誰停止*/ animation-play-state: paused; } ul:hover li{ opacity: 0.5; //當li的透明度為0.5時,就會看到父元素的背景顏色(黑色),就會有蒙版效果 } ul li:hover{ opacity: 1; //透明度為1,不透明,看不到父元素的背景色,故沒有蒙版效果 } @keyframes move { from{ margin-left: 0; } to{ margin-left: -1200px; //只需要移除屏幕4個li的寬度就可. 屏幕上就會顯示第5.6兩個li,這時,原本的動畫就會恢復的原來的位置接著動畫,實現了無線滾動效果 } } </style> </head> <body> <p> <ul> <li>![](images/banner1.png)</li> <li>![](images/banner2.jpg)</li> <li>![](images/banner3.jpg)</li> <li>![](images/banner4.jpg)</li> //把前兩個li加在后面,起到過度效果;動畫不會顯得太生硬. <li>![](images/banner1.png)</li> <li>![](images/banner2.jpg)</li> </ul> </p> </body> </html>
關于HTML與CSS中的動畫模塊是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。