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

最近做項(xiàng)目的時(shí)候需要實(shí)現(xiàn)一個(gè)字符逐個(gè)出現(xiàn)的打字效果,用css的clip+css的動(dòng)畫(huà)實(shí)現(xiàn)的,與自己寫(xiě)的打字機(jī)效果相結(jié)合,整
理一起,效果很贊。
先來(lái)說(shuō)說(shuō)這個(gè)線條,我們會(huì)看到它是條,實(shí)際上就是個(gè)四周border有規(guī)律的顯示隱藏,那么這里必定會(huì)想到after,before屬性,
我們暫且先考慮after。
先建立一個(gè)box,然后after一個(gè)邊框
<div class="box"></div>
.box:before{
content: '';
position: absolute;
width:px;height: px;border:px red solid;
left:-px;top:-px;
z-index: ;
}
接下來(lái)要做的就是讓它有規(guī)律的顯示隱藏就可以了,這里要用到clip屬性,我這篇文章有講到:css圓形百分比進(jìn)度條的實(shí)現(xiàn)原理。
在這里說(shuō)說(shuō)我們這個(gè)如何實(shí)現(xiàn),首先我要讓這個(gè)先顯示上邊框-左-底-右,這樣就有了一個(gè)循環(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)然,我們?cè)偌右粋€(gè)一模一樣的before就ok了,他們的時(shí)間間隔為s,這里要注意,如果你是延遲s,那么你會(huì)在s內(nèi)看到的是整
個(gè)邊框出現(xiàn),這里要改為延遲-s,這個(gè)問(wèn)題就會(huì)完美解決。
.box:before{
-webkit-animation:clipMe s -s linear infinite;
}
/***************************************************************/
再來(lái)說(shuō)說(shuō)打字機(jī),打字機(jī)無(wú)非就是不斷替換顯示字符顯示在屏幕上,先獲取box里的內(nèi)容,
<div class="box"> <span>/**僅共娛樂(lè),然并卵**/</span> <p>Login : Jmingzi</p> <p>password : ******</p> <p>Access is granted</p> <span>Welcome ymblog.net !</span> </div>
獲取以后再一個(gè)個(gè)替換顯示,
var t = setInterval(function(){
str = con.substr(, strlen) + "_";
me.obj.html(str);
//內(nèi)容打印完畢
if(strlen == con.length){
clearInterval(t);
}
strlen = strlen + ;
}, me.speed);
在這里我只不過(guò)將它封裝為一個(gè)類(lèi),便于初始化一些參數(shù),完整代碼:
//初始化工作,獲取幾段文字內(nèi)容,將它們隱藏后逐個(gè)顯示即可
$(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();
});
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家有所幫助
- js+css實(shí)現(xiàn)打字效果
- C++實(shí)現(xiàn)的打字母游戲示例
- javascript實(shí)現(xiàn)自動(dòng)輸出文本(打字特效)
- JavaScript實(shí)現(xiàn)打字效果的方法
- JavaScript模擬實(shí)現(xiàn)鍵盤(pán)打字效果
- C++實(shí)現(xiàn)類(lèi)似延時(shí)停頓的打字效果
- javascript游戲開(kāi)發(fā)之《三國(guó)志曹操傳》零部件開(kāi)發(fā)(三)情景對(duì)話中仿打字機(jī)輸出文字
- JavaScript打字小游戲代碼
- javascript 打字效果的文字特效
- javascript 打字游戲?qū)崿F(xiàn)代碼
- javascript之textarea打字機(jī)效果提示代碼推薦
- C語(yǔ)言制作簡(jiǎn)易金山打字通功能的代碼
相關(guān)文章
小程序圖片長(zhǎng)按識(shí)別功能的實(shí)現(xiàn)方法
這篇文章主要介紹了小程序圖片長(zhǎng)按識(shí)別功能的實(shí)現(xiàn)方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-08-08
JS實(shí)現(xiàn)的五級(jí)聯(lián)動(dòng)菜單效果完整實(shí)例
這篇文章主要介紹了JS實(shí)現(xiàn)的五級(jí)聯(lián)動(dòng)菜單效果,結(jié)合完整實(shí)例形式分析了js多級(jí)聯(lián)動(dòng)菜單的完整實(shí)現(xiàn)步驟,涉及JS數(shù)組遍歷、擴(kuò)展及元素節(jié)點(diǎn)操作相關(guān)技巧,需要的朋友可以參考下2017-02-02
javascript實(shí)現(xiàn)圖像循環(huán)明暗變化的方法
這篇文章主要介紹了javascript實(shí)現(xiàn)圖像循環(huán)明暗變化的方法,實(shí)例分析了javascript操作css樣式的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-02-02
Bootstrap 實(shí)現(xiàn)查詢的完美方法
Bootstrap,來(lái)自 Twitter,是目前最受歡迎的前端框架。這篇文章主要介紹了Bootstrap 實(shí)現(xiàn)查詢的完美方法,需要的朋友可以參考下2016-10-10
JavaScript實(shí)現(xiàn)計(jì)算器的四則運(yùn)算功能
這篇文章主要為大家介紹了如何通過(guò)JavaScript實(shí)現(xiàn)計(jì)算器的四則運(yùn)算功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起動(dòng)手試試2022-02-02
javascript設(shè)置文本框光標(biāo)的方法實(shí)例小結(jié)
這篇文章主要介紹了javascript設(shè)置文本框光標(biāo)的方法,結(jié)合實(shí)例形式總結(jié)分析了javascript針對(duì)文本框光標(biāo)的位置、設(shè)置及文本操作的相關(guān)技巧,需要的朋友可以參考下2016-11-11

