利用純CSS實(shí)現(xiàn)動(dòng)態(tài)的文字效果實(shí)例

大家可能經(jīng)常會(huì)看到類(lèi)似酷炫的網(wǎng)站:
在這類(lèi)網(wǎng)站中能看到,一打開(kāi)頁(yè)面,無(wú)論是文字還是圖片,都隨著規(guī)定時(shí)間的而變化。原理很簡(jiǎn)單,主要用到CSS中animation屬性。
接下來(lái),我以我目前的工程項(xiàng)目為例,實(shí)現(xiàn)文字和圖片的動(dòng)畫(huà)效果。(效果如上圖GIF)
HTML代碼編寫(xiě):
<section class="rw-wrapper">
<span class="span-title">文字題目</span>
<h2 class="rw-sentence">
</h2>
</section>
目前大體的框架已經(jīng)寫(xiě)好,包含一個(gè)section標(biāo)簽,span(根據(jù)喜好添加),h2標(biāo)簽。接下來(lái)向其中添加文字代碼。將代碼放在h2中。
<div class="rw-words rw-words-1">
<span>內(nèi)容1</span>
<span>內(nèi)容2</span>
...
</div>
第一種文字動(dòng)畫(huà)HTML。
<div class="rw-words rw-words-2">
<span>內(nèi)容1</span>
...
</div>
第二種文字動(dòng)畫(huà)HTML。
//同理
<div class="rw-words rw-words-3">
<span><img src="圖片路徑" width="XX" height="XX"></span>
...
</div>
圖片變換效果,如上GIF的展示。圖片從右滑動(dòng)并更替。
ok,至此HTML代碼搞定,現(xiàn)在來(lái)實(shí)現(xiàn)最核心的部分:CSS設(shè)置動(dòng)畫(huà)及字體樣式。
CSS代碼編寫(xiě)
.rw-words{
-webkit-perspective:800px;
-moz-perspective:800px;
-o-perspective:800px;
-ms-perspactive:800px;
perspactive:800px;
}
這里順帶一講,perspective 屬性定義 3D 元素距視圖的距離,以像素計(jì)。當(dāng)為元素定義 perspective 屬性時(shí),其子元素會(huì)獲得透視效果,而不是元素本身。數(shù)字800px代表元素距離視圖的距離。-moz代表firefox瀏覽器私有屬性,-ms代表IE瀏覽器私有屬性,-webkit代表chrome、safari私有屬性,-o代表opera瀏覽器私有屬性.
.rw-words span{
white-space:nowrap; //文字不允許換行
overflow:hidden;
}
對(duì)于具體的<span>標(biāo)簽位置設(shè)置根據(jù)實(shí)際情況設(shè)置。
.rw-words-1 span{
-webkit-animation: rotateWordsFirst 10s linear infinite 0s;
-o-animation: rotateWordsFirst 10s linear infinite 0s;
-moz-animation: rotateWordsFirst 10s linear infinite 0s;
-ms-animation: rotateWordsFirst 10s linear infinite 0s;
animation:rotateWordsFirst 10s linear infinite 0s;
}
這里使用動(dòng)畫(huà)效果!首先rotateWordsFirst是動(dòng)畫(huà)的名稱(chēng),10s 是整個(gè)動(dòng)畫(huà)完成一次的時(shí)間,linear是使用的時(shí)間曲線(xiàn),infinite重復(fù)次數(shù)無(wú)限。
關(guān)于animation語(yǔ)法:
animation: name duration timing-function delay iteration-count direction;
animation-name:規(guī)定需要綁定到選擇器的 keyframe 名稱(chēng)。
animation-duration:規(guī)定完成動(dòng)畫(huà)所花費(fèi)的時(shí)間,以秒或毫秒計(jì)。
animation-timing-function :規(guī)定動(dòng)畫(huà)的速度曲線(xiàn)。
animation-delay :規(guī)定在動(dòng)畫(huà)開(kāi)始之前的延遲。
animation-iteration-count :規(guī)定動(dòng)畫(huà)應(yīng)該播放的次數(shù)( infinite無(wú)限輪播 )
animation-direction :規(guī)定是否應(yīng)該輪流反向播放動(dòng)畫(huà)。
想要更多了解的,搜索:CSS系列之a(chǎn)nimationi.
接下來(lái),animation的另一種。
.rw-words-2 span{
-webkit-animation: rotateWordsFirst 10s ease-in infinite 0s;
-o-animation: rotateWordsFirst 10s ease-in infinite 0s;
-moz-animation: rotateWordsFirst 10s ease-in infinite 0s;
-ms-animation: rotateWordsFirst 10s ease-in infinite 0s;
animation:rotateWordsFirst 10s ease-in infinite 0s;
}
ease-in解釋?zhuān)?/p>
ease 規(guī)定慢速開(kāi)始,然后變快,然后慢速結(jié)束的過(guò)渡效果; ease-in 規(guī)定以慢速開(kāi)始的過(guò)渡效果; ease-out 規(guī)定以慢速結(jié)束的過(guò)渡效果; ease-in-out 規(guī)定以慢速開(kāi)始和結(jié)束的過(guò)渡效果(這幾種效果大家都可以嘗試)
同理,對(duì).rw-words-3 span可以用同樣的方式設(shè)置。
.rw-words span:nth-child(1){
-webkit-animation-delay: 3s;
-moz-animation-delay: 3s;
-o-animation-delay: 3s;
-ms-animation-delay: 3s;
animation-delay: 3s;
}
:nth-child(n) 選擇器匹配屬于其父元素的第 N 個(gè)子元素,不論元素的類(lèi)型。n 可以是數(shù)字、關(guān)鍵詞或公式。
.rw-words span:nth-child(n) {
-webkit-animation-delay: 6s;
-moz-animation-delay: 6s;
-o-animation-delay: 6s;
-ms-animation-delay: 6s;
animation-delay: 6s;
}
...
設(shè)置不同的選擇器,來(lái)實(shí)現(xiàn)文字之間的顯示延遲。
@-webkit-keyframes rotateWordsFirst/second {
0% { opacity: 0; -webkit-animation-timing-function: ease-in; width: 0px;}
//此屬性查看animation
5% { opacity: 1; -webkit-animation-timing-function: ease-out; width: 100%;}
17% { opacity: 1; } //設(shè)置不透明級(jí)別
20% { opacity: 0; }
100% { opacity: 0; }
}
keyframes對(duì)每一個(gè)動(dòng)畫(huà)定義時(shí)間軸,可以設(shè)置某個(gè)時(shí)間動(dòng)畫(huà)作用的元素是什么狀態(tài)。與animation配合使用。
然后寫(xiě)出各個(gè)瀏覽器的適配,如-o,-moz,-ms等。
除了animation屬性,各位還可以試試transform屬性的使用,可以實(shí)現(xiàn)文字及其圖像的旋轉(zhuǎn),縮放等效果,以上就是利用純CSS實(shí)現(xiàn)動(dòng)態(tài)的文字效果的全部?jī)?nèi)容,希望能對(duì)大家學(xué)習(xí)使用CSS有所幫助。
相關(guān)文章
CSS重要屬性之 margin 屬性知識(shí)大整合(必看篇)
下面小編就為大家?guī)?lái)一篇CSS重要屬性之 margin 屬性知識(shí)大整合(必看篇)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-08-20- 下面小編就為大家?guī)?lái)一篇CSS background全部匯總。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-08-19
關(guān)于css旋轉(zhuǎn)動(dòng)畫(huà)效果的簡(jiǎn)單實(shí)現(xiàn)
下面小編就為大家?guī)?lái)一篇關(guān)于css旋轉(zhuǎn)動(dòng)畫(huà)效果的簡(jiǎn)單實(shí)現(xiàn)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-08-19利用CSS3實(shí)現(xiàn)自定義滾動(dòng)條代碼分享
這篇文章給大家介紹如何利用CSS3實(shí)現(xiàn)自定義滾動(dòng)條,效果很好,有需要的小伙伴們可以參考借鑒。2016-08-18CSS重要屬性之float學(xué)習(xí)心得(分享)
下面小編就為大家?guī)?lái)一篇CSS重要屬性之float學(xué)習(xí)心得(分享)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-08-18- 下面小編就為大家?guī)?lái)一篇常用的 css 命名規(guī)則(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧,祝大家游戲愉快哦2016-08-18
純CSS3制作逼真的汽車(chē)運(yùn)動(dòng)動(dòng)畫(huà)特效源碼
本源碼是一套使用純CSS3制作的逼真汽車(chē)運(yùn)動(dòng)動(dòng)畫(huà)特效的代碼,通過(guò)公路斑馬線(xiàn)的左右晃動(dòng)來(lái)制作出汽車(chē)運(yùn)動(dòng)的視覺(jué)效果2016-08-17- 下面小編就為大家?guī)?lái)一篇淺談css和@import區(qū)別及用法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-08-22