基于Css3和JQuery實現(xiàn)打字機效果
先給大家附上效果圖:
最近做項目的時候需要實現(xiàn)一個字符逐個出現(xiàn)的打字效果,用css的clip+css的動畫實現(xiàn)的,與自己寫的打字機效果相結(jié)合,整
理一起,效果很贊。
先來說說這個線條,我們會看到它是條,實際上就是個四周border有規(guī)律的顯示隱藏,那么這里必定會想到after,before屬性,
我們暫且先考慮after。
先建立一個box,然后after一個邊框
<div class="box"></div> .box:before{ content: ''; position: absolute; width:px;height: px;border:px red solid; left:-px;top:-px; z-index: ; }
接下來要做的就是讓它有規(guī)律的顯示隱藏就可以了,這里要用到clip屬性,我這篇文章有講到:css圓形百分比進度條的實現(xiàn)原理。
在這里說說我們這個如何實現(xiàn),首先我要讓這個先顯示上邊框-左-底-右,這樣就有了一個循環(huán)。根據(jù)clip,rect(上,右,底,
左),比如顯示上邊框,那么就是:
clip:rect(px,px,px,px);
我們只需用animation讓它依次顯示就ok
@-webkit-keyframes clipMe{ %{ clip: rect(px, px, px, px); } %{ clip: rect(px, px, px, px); } %{ clip: rect(px, px, px, px); } %{ clip: rect(px, px, px, px); } %{ clip: rect(px, px, px, px); } }
然后再after中調(diào)用顯示:
.box:after{ -webkit-animation:clipMe s linear infinite; }
當然,我們再加一個一模一樣的before就ok了,他們的時間間隔為s,這里要注意,如果你是延遲s,那么你會在s內(nèi)看到的是整
個邊框出現(xiàn),這里要改為延遲-s,這個問題就會完美解決。
.box:before{ -webkit-animation:clipMe s -s linear infinite; }
/***************************************************************/
再來說說打字機,打字機無非就是不斷替換顯示字符顯示在屏幕上,先獲取box里的內(nèi)容,
<div class="box"> <span>/**僅共娛樂,然并卵**/</span> <p>Login : Jmingzi</p> <p>password : ******</p> <p>Access is granted</p> <span>Welcome ymblog.net !</span> </div>
獲取以后再一個個替換顯示,
var t = setInterval(function(){ str = con.substr(, strlen) + "_"; me.obj.html(str); //內(nèi)容打印完畢 if(strlen == con.length){ clearInterval(t); } strlen = strlen + ; }, me.speed);
在這里我只不過將它封裝為一個類,便于初始化一些參數(shù),完整代碼:
//初始化工作,獲取幾段文字內(nèi)容,將它們隱藏后逐個顯示即可 $(function(){ function Type(obj, speed, welcome){ this.obj = obj; this.speed = speed; this.welcome = welcome; } Type.prototype = { init : function(){ var str = this.obj.html(); this.obj.html(this.welcome); this.add(str); }, add : function(con){ var me = this; var str; var strlen = ; var t = setInterval(function(){ str = con.substr(, strlen) + "_"; me.obj.html(str); //內(nèi)容打印完畢 if(strlen == con.length){ clearInterval(t); } strlen = strlen + ; }, me.speed); } } var a = new Type($('.box'), , '正在初始化...'); a.init(); });
以上就是本文的全部內(nèi)容,希望對大家有所幫助
- js+css實現(xiàn)打字效果
- C++實現(xiàn)的打字母游戲示例
- javascript實現(xiàn)自動輸出文本(打字特效)
- JavaScript實現(xiàn)打字效果的方法
- JavaScript模擬實現(xiàn)鍵盤打字效果
- C++實現(xiàn)類似延時停頓的打字效果
- javascript游戲開發(fā)之《三國志曹操傳》零部件開發(fā)(三)情景對話中仿打字機輸出文字
- JavaScript打字小游戲代碼
- javascript 打字效果的文字特效
- javascript 打字游戲?qū)崿F(xiàn)代碼
- javascript之textarea打字機效果提示代碼推薦
- C語言制作簡易金山打字通功能的代碼
相關(guān)文章
javascript實現(xiàn)圖像循環(huán)明暗變化的方法
這篇文章主要介紹了javascript實現(xiàn)圖像循環(huán)明暗變化的方法,實例分析了javascript操作css樣式的技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-02-02javascript設(shè)置文本框光標的方法實例小結(jié)
這篇文章主要介紹了javascript設(shè)置文本框光標的方法,結(jié)合實例形式總結(jié)分析了javascript針對文本框光標的位置、設(shè)置及文本操作的相關(guān)技巧,需要的朋友可以參考下2016-11-11