您好,登錄后才能下訂單哦!
這篇文章運用簡單易懂的例子給大家介紹如何利用純CSS實現動態的文字效果,代碼非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
相信大家都曾在網站中看到過中效果,一打開頁面,無論是文字還是圖片,都隨著規定時間的而變化,今天我們將介紹如何通過用純CSS來實現這種效果,下面一起來看看。
大家可能經常會看到酷炫的網站
在這類網站中能看到,一打開頁面,無論是文字還是圖片,都隨著規定時間的而變化。原理很簡單,主要用到CSS中animation屬性。
接下來,我以我目前的工程項目為例,實現文字和圖片的動畫效果。
HTML代碼編寫:
復制代碼
代碼如下:
<section class="rw-wrapper"> <span class="span-title">文字題目</span> <h3 class="rw-sentence"> </h3> </section>
目前大體的框架已經寫好,包含一個section標簽,span(根據喜好添加),h3標簽。接下來向其中添加文字代碼。將代碼放在h3中。
復制代碼
代碼如下:
<p class="rw-words rw-words-1"> <span>內容1</span> <span>內容2</span> ... </p>
第一種文字動畫HTML。
復制代碼
代碼如下:
<p class="rw-words rw-words-2"> <span>內容1</span> ... </p>
第二種文字動畫HTML。
復制代碼
代碼如下:
//同理 <p class="rw-words rw-words-3"> <span><img src="圖片路徑" width="XX" height="XX"></span> ... </p>
圖片變換效果,如上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:規定需要綁定到選擇器的 keyframe 名稱。
animation-duration:規定完成動畫所花費的時間,以秒或毫秒計。
animation-timing-function :規定動畫的速度曲線。
animation-delay :規定在動畫開始之前的延遲。
animation-iteration-count :規定動畫應該播放的次數( infinite無限輪播 )
animation-direction :規定是否應該輪流反向播放動畫。
想要更多了解的,搜索: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 規定慢速開始,然后變快,然后慢速結束的過渡效果; ease-in 規定以慢速開始的過渡效果; ease-out 規定以慢速結束的過渡效果; ease-in-out 規定以慢速開始和結束的過渡效果(這幾種效果大家都可以嘗試)
同理,對.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對每一個動畫定義時間軸,可以設置某個時間動畫作用的元素是什么狀態。與animation配合使用。
然后寫出各個瀏覽器的適配,如-o,-moz,-ms等。
除了animation屬性,各位還可以試試transform屬性的使用,可以實現文字及其圖像的旋轉,縮放等效果,以上就是利用純CSS實現動態的文字效果的全部內容,希望能對大家學習使用CSS有所幫助。
關于如何利用純CSS實現動態的文字效果就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。