基于Css3和JQuery實現(xiàn)打字機(jī)效果
先給大家附上效果圖:

最近做項目的時候需要實現(xiàn)一個字符逐個出現(xiàn)的打字效果,用css的clip+css的動畫實現(xiàn)的,與自己寫的打字機(jī)效果相結(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圓形百分比進(jìn)度條的實現(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;
}
當(dāng)然,我們再加一個一模一樣的before就ok了,他們的時間間隔為s,這里要注意,如果你是延遲s,那么你會在s內(nèi)看到的是整
個邊框出現(xiàn),這里要改為延遲-s,這個問題就會完美解決。
.box:before{
-webkit-animation:clipMe s -s linear infinite;
}
/***************************************************************/
再來說說打字機(jī),打字機(jī)無非就是不斷替換顯示字符顯示在屏幕上,先獲取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ā)(三)情景對話中仿打字機(jī)輸出文字
- JavaScript打字小游戲代碼
- javascript 打字效果的文字特效
- javascript 打字游戲?qū)崿F(xiàn)代碼
- javascript之textarea打字機(jī)效果提示代碼推薦
- C語言制作簡易金山打字通功能的代碼
相關(guān)文章
javascript實現(xiàn)圖像循環(huán)明暗變化的方法
這篇文章主要介紹了javascript實現(xiàn)圖像循環(huán)明暗變化的方法,實例分析了javascript操作css樣式的技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-02-02
javascript設(shè)置文本框光標(biāo)的方法實例小結(jié)
這篇文章主要介紹了javascript設(shè)置文本框光標(biāo)的方法,結(jié)合實例形式總結(jié)分析了javascript針對文本框光標(biāo)的位置、設(shè)置及文本操作的相關(guān)技巧,需要的朋友可以參考下2016-11-11

