多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國(guó)內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁(yè) > web前端 > jquery > jQuery實(shí)現(xiàn)的打字機(jī)字幕效果,可設(shè)置打字速度

jQuery實(shí)現(xiàn)的打字機(jī)字幕效果,可設(shè)置打字速度

來(lái)源:程序員人生   發(fā)布時(shí)間:2013-12-29 14:43:52 閱讀次數(shù):3432次
記得以前看電視的時(shí)候,電視里偶爾會(huì)出現(xiàn)文字一個(gè)緊接一個(gè)出現(xiàn),伴隨著打字機(jī)滴答滴答聲音的字幕效果,常常好奇其實(shí)現(xiàn)效果。今天周末,沒(méi)課就順便想了想用javascript實(shí)現(xiàn)打字機(jī)效果。用了一個(gè)小時(shí)左右,就做出來(lái),代碼不過(guò)幾十行。

先說(shuō)下思路:一些典型的嵌套文字的html容器標(biāo)簽可以是這樣:

1 <font>一行嵌套在font標(biāo)簽里的文字</font>
2 <p>一段嵌套在p標(biāo)記的文字</>
3 <div>一段嵌套在div標(biāo)記里的文字</div>

因此,我們首先要取得容器內(nèi)部?jī)?nèi)容。這可以通過(guò)給容口賦id,然后用jquery的$("#id").html()方法獲取到,并將獲取到的內(nèi)容賦與一字符串變量。接著設(shè)一方向向后,步長(zhǎng)為1的游標(biāo),逐字判斷,若是字符"<”跳過(guò),這樣做的目的是因?yàn)槟承┣短资褂脴?biāo)簽的情況存在,例如:

1 <font>嵌套使用<font color="red">標(biāo)簽</font>,這種情況下
2 應(yīng)該跳過(guò)內(nèi)層的標(biāo)簽,因?yàn)閮?nèi)層標(biāo)簽只是提供了一種表現(xiàn)形式</font>

在這種情況下應(yīng)該跳過(guò)內(nèi)層的標(biāo)簽,因?yàn)樗鼈冎皇翘峁┝艘环N表現(xiàn)形式,不屬于正文。所以此時(shí)游標(biāo)應(yīng)跳到下一個(gè)相應(yīng)的">"字符后一位的位置。最后我們使用substring()方法截取,對(duì)象是之前接收了標(biāo)簽內(nèi)部?jī)?nèi)容的字符串變量,截取內(nèi)容為起始位置到當(dāng)前游標(biāo)所在位置之間的一段文本。這樣就能使文本內(nèi)容逐漸變長(zhǎng)。

當(dāng)然了,因?yàn)橐氖谴蜃謾C(jī)效果,所以我們可以使用字符"_"來(lái)模擬一個(gè)光標(biāo)。用字符串"_"和""來(lái)模擬光標(biāo)的閃爍效果。這可以通過(guò)使用游標(biāo)與1按位與來(lái)實(shí)現(xiàn),因?yàn)橛螛?biāo)向后游走的特性使得按位與的結(jié)果在0與1間變換,故而光標(biāo)的閃爍效果也出來(lái)了,然后將光標(biāo)附加在當(dāng)前顯示的文本內(nèi)容尾部即可。

又因?yàn)橐鹱峙袛嘧址愋停允褂胹etInterval()方法作為定時(shí)器即可,這樣做的好處還可以讓我們自定義一個(gè)打字機(jī)的速度。如下圖中typewriter方法的名為speed的參數(shù)所示。當(dāng)游標(biāo)移動(dòng)到內(nèi)部?jī)?nèi)容的結(jié)束處事,不要忘了調(diào)用clearInterval()消除定時(shí)器。

整個(gè)函數(shù)的代碼如下:

 1 (function(a) {
2 a.fn.typewriter = function(speed) {
3 this.each(function() {
4 var d = a(this),
5 c = d.html(),
6 b = 0;
7 d.html("");
8 var e = setInterval(function() {
9 var f = c.substr(b, 1);
10 if (f == "<") {
11 b = c.indexOf(">", b) + 1
12 } else {
13 b++
14 }
15 d.html(c.substring(0, b) + (b & 1 ? "_": ""));
16 if (b >= c.length) {
17 clearInterval(e)
18 }
19 },
20 speed)
21 });
22 return this;
23 }
24 })(jQuery);

用法很簡(jiǎn)單,舉例如下:

1 <p id="p1">一段嵌套在p標(biāo)記的文字</p> 
2 <p id="p2">嵌套在p標(biāo)記里的<font>標(biāo)記</font></p>

在html頁(yè)面先引用jquery庫(kù),再引入typewriter js文件。然后調(diào)用方法:

1 $("p1").typewriter(100); 
2 $("p2").typewriter(200);

即可。

值得注意的是:如果文本內(nèi)容包括字符"<"和">",則顯示不出來(lái),因?yàn)榉椒〞?huì)將它們當(dāng)作html標(biāo)簽而跳過(guò)。

請(qǐng)看效果:


提示:可修改后代碼再運(yùn)行!

來(lái)源:http://tudas.cnblogs.com/

生活不易,碼農(nóng)辛苦
如果您覺(jué)得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 自拍偷拍 亚洲 | 麻豆成人在线 | 免费国产阿v视频在线观看 免费国产成高清人在线视频 | 亚洲精品视频在线免费 | 欧美亚洲777 | 日本中文字幕在线播放 | 亚洲乱仑 | 色综合久久久高清综合久久久 | 五月婷婷在线免费观看 | 欧美性猛交xxxx乱大交极品 | 欧美videos喝尿 | freexx性欧美hd | 大番蕉尹人一线久久 | 我想看一级毛片免费的 | 欧美国产日韩在线播放 | 多人伦交性欧美在线观看 | 91成人午夜精品福利院在线观看 | 国产欧美综合一区二区 | 成人欧美视频在线看免费 | 精品福利一区二区免费视频 | 欧美一级久久久久久久大片动画 | 秋霞一级片 | 男女视频在线观看免费 | 精品久久久久久中文字幕女 | 国产不卡高清在线观看视频 | 久久www免费人成高清 | 欧美日韩一二三区 | 午夜啪啪片 | a在线视频 | 亚洲天堂在线视频观看 | 亚洲天堂久久久 | 综合毛片| 午夜久久网 | www插插 | 视频1区| 久久精品一区二区三区资源网 | 亚洲久久草| 亚洲欧美在线免费观看 | 性加拿大高清xxxxx | 爽好舒服快奶水视频 | 在线精品自拍 |