介紹
很多時候,我們會有一些奇怪的騷想法,比如讓網頁中的一些特定文字像敲程式碼一樣一個一個顯示出來,有一種命令列的感覺,增加設計感,很多人覺得這個效果要用很長一段JS來實現.... 正好手頭有個例子,我決定用CSS實驗一下
開始操作
原圖

emmmmmm...請忽略我的字型
- 想法1: 讓這段文字從寬度0變成實際寬度
.title{
...
animation: typing 6s;
}
@keyframes typing{
from {
width: 0;
}
}
複製程式碼

emmmm, 忘記禁止折行和剪下超出部分文字了
修改
.title{
...
white-space: nowrap;
overflow: hidden;
animation: typing 6s;
}
@keyframes typing{
from {
width: 0;
}
}
複製程式碼

看起來還不錯,但是還不夠,我們希望字元能一個一個出來,想了想,Animation裡面有個叫steps的東西,各位可以簡單的理解(具體的這裡就不介紹啦)為: 裡面放多大的數字就是分多少幀執行,比如steps(5)就是將動畫分成5幀執行。
就算我們能讓動畫一幀一幀執行,但是怎麼讓字元一個一個出現呢?
答案是.... 無人問津的ch單位,這是CSS3的新單位,表示"0"的寬度,到這我想真正的解決方案就出現啦!
在等寬字型中,"0"字形的寬度和其他所有字形的寬度是一樣的
修改
.title{
...
width: 17ch; //別忘了把空格算上!
white-space: nowrap;
overflow: hidden;
animation: typing 6s steps(17); //steps裡為你的字元數
}
@keyframes typing{
from {
width: 0;
}
}
複製程式碼

或許我們還需要一個閃爍的游標?那就留著下次講好了(如果我沒忘的話)
閃爍動畫文章更新啦 點這裡
文章翻譯改編於CSS揭祕