搜尋
首頁web前端前端問答用什麼實現css3動畫效果

實現css3動畫效果:1、利用「@keyframes」規則配合animation屬性實現動畫效果;2、利用transition過渡屬性實現動畫效果,語法為「元素{transition:屬性名稱時間速度曲線delay} 」。

用什麼實現css3動畫效果

本教學操作環境:windows10系統、CSS3&&HTML5版本、Dell G3電腦。

用什麼實現css3動畫效果

一、是什麼

CSS動畫(CSS Animations)是為層疊樣式表建議的允許可擴展標記語言(XML)元素使用CSS的動畫的模組

即指元素從一種樣式逐漸過渡為另一種樣式的過程

常見的動畫效果有很多,如平移、旋轉、縮放等等,複雜動畫則是多個簡單動畫的組合

css實現動畫的方式,有以下幾種:

transition 實現漸變動畫

animation實作自訂動畫

二、實作方式

transition 實作漸進動畫

transition的屬性如下:

  • property:填入需要變化的css屬性

  • duration:完成過渡效果所需的時間單位(s或ms)

  • timing-function:完成效果的速度曲線

  • delay: 動畫效果的延遲觸發時間

其中timing-function的值有如下:

值 描述

  • linear 勻速(等於cubic-bezier(0,0,1,1))

  • #ease 從慢到快到慢(cubic-bezier(0.25,0.1,0.25,1))

  • ease-in 慢慢變快(等於cubic-bezier (0.42,0,1,1))

  • ease-out 慢慢變慢(等於cubic-bezier(0,0,0.58,1))

  • ease-in-out 先變快到慢(等於cubic-bezier(0.42,0,0.58,1)),漸顯漸隱效果

  • cubic-bezier(n,n,n,n) 在cubic-bezier 函數中定義自己的值。可能的值是0 至1 之間的數值

注意:並不是所有的屬性都能使用過渡的,如display:nonedisplay:block

舉個例子,實現滑鼠移動上去發生變化動畫效果

<!DOCTYPE html>
<html>
<head>
<style> 
div
{
width:100px;
height:100px;
background:blue;
transition:width 2s;
-moz-transition:width 2s; /* Firefox 4 */
-webkit-transition:width 2s; /* Safari and Chrome */
-o-transition:width 2s; /* Opera */
}
div:hover
{
width:300px;
}
</style>
</head>
<body>
<div></div>
<p>请把鼠标指针移动到蓝色的 div 元素上,就可以看到过渡效果。</p>
<p><b>注释:</b>本例在 Internet Explorer 中无效。</p>
</body>
</html>

輸出結果:

用什麼實現css3動畫效果

animation 實作自訂動畫

animation是由8 個屬性的簡寫,分別如下:

  • animation-duration 指定動畫完成一個週期所需時間,單位秒(s)或毫秒(ms),預設為0  

  • animation-timing-function 指定動畫計時函數,即動畫的速度曲線,預設為"ease" linear、ease、ease-in、ease- out、ease-in-out

  • animation-delay 指定動畫延遲時間,即動畫何時開始,預設為0  

  • animation- iteration-count 指定動畫播放的次數,預設為1  

  • animation-direction 指定動畫播放的方向 預設是normal normal、reverse、alternate、alternate-reverse

  • animation-fill-mode 指定動畫填滿模式。預設是 none forwards、backwards、both

  • animation-play-state 指定動畫播放狀態,正在運作或暫停。預設是running running、pauser

  • animation-name 指定@keyframes 動畫的名稱  

CSS 動畫只需要定義一些關鍵的幀,而其餘的幀,瀏覽器會根據計時函數插值計算出來,

透過@keyframes 來定義關鍵幀

因此,如果我們想要讓元素旋轉一圈,只需要定義開始和結束兩幀即可:

@keyframes rotate{
    from{
        transform: rotate(0deg);
    }
    to{
        transform: rotate(360deg);
    }
}

from 表示最開始的那一幀,to 表示結束時的那一幀

也可以使用百分比刻畫生命週期

@keyframes rotate{
    0%{
        transform: rotate(0deg);
    }
    50%{
        transform: rotate(180deg);
    }
    100%{
        transform: rotate(360deg);
    }
}

定義好了關鍵影格後,下來就可以直接用它了:

animation: rotate 2s;

#三、總結

transition(過度) 用於設置元素的樣式過度,和animation有著類似的效果,但細節上有很大的不同

transform(變形) 用於元素進行旋轉、縮放、移動或傾斜,和設置樣式的動畫並沒有什麼關係,就相當於color一樣用來設定元素的「外表」

translate(移動) 只是transform的屬性值,即移動

animation(動畫) 用來設定動畫屬性,他是一個簡寫的屬性,包含6個屬性

(學習影片分享:css影片教學

以上是用什麼實現css3動畫效果的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
css怎么隐藏元素但不占空间css怎么隐藏元素但不占空间Jun 01, 2022 pm 07:15 PM

两种方法:1、利用display属性,只需给元素添加“display:none;”样式即可。2、利用position和top属性设置元素绝对定位来隐藏元素,只需给元素添加“position:absolute;top:-9999px;”样式。

原来利用纯CSS也能实现文字轮播与图片轮播!原来利用纯CSS也能实现文字轮播与图片轮播!Jun 10, 2022 pm 01:00 PM

怎么制作文字轮播与图片轮播?大家第一想到的是不是利用js,其实利用纯CSS也能实现文字轮播与图片轮播,下面来看看实现方法,希望对大家有所帮助!

css3什么是自适应布局css3什么是自适应布局Jun 02, 2022 pm 12:05 PM

自适应布局又称“响应式布局”,是指可以自动识别屏幕宽度、并做出相应调整的网页布局;这样的网页能够兼容多个不同的终端,而不是为每个终端做一个特定的版本。自适应布局是为解决移动端浏览网页而诞生的,能够为使用不同终端的用户提供很好的用户体验。

css3如何实现鼠标点击图片放大css3如何实现鼠标点击图片放大Apr 25, 2022 pm 04:52 PM

实现方法:1、使用“:active”选择器选中鼠标点击图片的状态;2、使用transform属性和scale()函数实现图片放大效果,语法“img:active {transform: scale(x轴放大倍数,y轴放大倍数);}”。

css3动画效果有变形吗css3动画效果有变形吗Apr 28, 2022 pm 02:20 PM

css3中的动画效果有变形;可以利用“animation:动画属性 @keyframes ..{..{transform:变形属性}}”实现变形动画效果,animation属性用于设置动画样式,transform属性用于设置变形样式。

css3怎么设置动画旋转速度css3怎么设置动画旋转速度Apr 28, 2022 pm 04:32 PM

在css3中,可以利用“animation-timing-function”属性设置动画旋转速度,该属性用于指定动画将如何完成一个周期,设置动画的速度曲线,语法为“元素{animation-timing-function:速度属性值;}”。

css3线性渐变可以实现三角形吗css3线性渐变可以实现三角形吗Apr 25, 2022 pm 02:47 PM

css3线性渐变可以实现三角形;只需创建一个45度的线性渐变,设置渐变色为两种固定颜色,一个是三角形的颜色,另一个为透明色即可,语法“linear-gradient(45deg,颜色值,颜色值 50%,透明色 50%,透明色 100%)”。

一文了解CSS3中的新特性 ::target-text 选择器一文了解CSS3中的新特性 ::target-text 选择器Apr 12, 2022 am 11:24 AM

本篇文章带大家一起深入了解一下CSS3中的新特性::target-text 选择器,聊聊该选择器的作用和使用方法,希望对大家有所帮助!

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版