利用純CSS實現動態(tài)的文字效果實例

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