1. 程式人生 > 其它 >css數字/文字滾動效果

css數字/文字滾動效果

技術標籤:h5html+csscss

效果:

在這裡插入圖片描述

原理

  • 利用偽類,開始的時候給本來的內容蓋住,然後執行動畫。
  • 設定寬高,寬就是單個內容(比如數字中的一位數)的寬,讓內容一行一個的排成列。
  • 動畫就是讓這些內容一個個的往上升,造成一種滾動效果
  • 最後露出原來的內容(原來的內容和偽類裡的內容是同樣的樣式)

程式碼

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>數字滾動</title>
	<style>
		/*無關緊要的屬性*/
.txt { position: absolute; left: 178px; font-size: 30px; line-height: 30px; } /*接下來這一段是重點*/ /*設定內容和偽類的樣式*/ .mod_txt { position: relative; display: inline-block; vertical-align: middle; text-align: center; float: left; overflow: hidden; width: 22px; height: 30px;
text-transform: uppercase; font-size: 30px; color: #333; } .mod_txt:before { position: absolute; top: 0; left: 0; width: 100%; word-break: break-all; background: #FFFFFF; font-size: 30px; color: #333; } /*設定裡面第一個數字的動畫*/ .txt11 span:nth-child(1):before { content
: "03456789"; -webkit-animation-name: txt1; animation-name: txt1; -webkit-animation-duration: 1.6s; animation-duration: 1.6s; /* -webkit-animation-delay: 0.3s; animation-delay: 0.3s; */ -webkit-animation-fill-mode: forwards; animation-fill-mode: forwards; } /*隨便寫的數,作用就是讓這一列數字向上升,形成滾動效果*/ @-webkit-keyframes txt1 { from { margin-top: -648px; } to { margin-top: 110px; } } /*設定裡面第二個數字的動畫*/ .txt11 span:nth-child(2):before { content: "051341989"; -webkit-animation-name: txt1; animation-name: txt1; -webkit-animation-duration: 1.8s; animation-duration: 1.8s; -webkit-animation-fill-mode: forwards; animation-fill-mode: forwards; }
</style> </head> <body> <div class="txt txt11"> <span class="mod_txt">2</span> <span class="mod_txt">0</span> </div> </body> </html>

嘮嘮叨叨

  • 想讓動畫停留的時間不一樣,就要讓animation-duration不一樣
  • 想讓動畫開始運動的時間不同,就單加animation-delay,但這樣會讓原來的數字先被看到一會
  • 想先不讓動畫執行,到一定時間了再執行的話,以上面的demo為例,html裡可以先不寫class名txt11
    ,等到了時候再$('.txt').addClass('txt11');就好了