利用純CSS實現動態的文字效果實例

不言
發布: 2018-06-05 11:49:03
原創
4682 人瀏覽過

相信大家都曾在網站中看到過中效果,一打開頁面,無論是文字還是圖片,都隨著規定時間的而變化,今天我們將介紹如何透過用純CSS來實現這種效果,下面一起來看看。

大家可能常常會看到酷炫的網站

在這類網站中能看到,一打開頁面,無論是文字還是圖片,都隨著規定時間的而變化。原理很簡單,主要用到CSS中animation屬性。

接下來,我以我目前的工程項目為例,實現文字和圖片的動畫效果。

HTML程式碼編寫:

複製程式碼

程式碼如下:

<section class="rw-wrapper">
<span class="span-title">文字题目</span>
<h2 class="rw-sentence">
</h2>
</section>
登入後複製

目前大體的框架已經寫好,包含一個section標籤,span(根據喜好添加),h2標籤。接下來在其中加入文字程式碼。將程式碼放在h2中。

複製程式碼

程式碼如下:

<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;
}
登入後複製

對於特定的標籤位置設定根據實際情況設定。

複製程式碼

程式碼如下:

.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 文字字型顏色設定方法(CSS color)

以上是利用純CSS實現動態的文字效果實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!