日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

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

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

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

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

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

因此,我們首先要取得容器內(nèi)部內(nèi)容。這可以通過給容口賦id,然后用jquery的$("#id").html()方法獲取到,并將獲取到的內(nèi)容賦與一字符串變量。接著設(shè)一方向向后,步長為1的游標(biāo),逐字判斷,若是字符"<”跳過,這樣做的目的是因為某些嵌套使用標(biāo)簽的情況存在,例如:

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

在這種情況下應(yīng)該跳過內(nèi)層的標(biāo)簽,因為它們只是提供了一種表現(xiàn)形式,不屬于正文。所以此時游標(biāo)應(yīng)跳到下一個相應(yīng)的">"字符后一位的位置。最后我們使用substring()方法截取,對象是之前接收了標(biāo)簽內(nèi)部內(nèi)容的字符串變量,截取內(nèi)容為起始位置到當(dāng)前游標(biāo)所在位置之間的一段文本。這樣就能使文本內(nèi)容逐漸變長。

當(dāng)然了,因為要的是打字機(jī)效果,所以我們可以使用字符"_"來模擬一個光標(biāo)。用字符串"_"和""來模擬光標(biāo)的閃爍效果。這可以通過使用游標(biāo)與1按位與來實現(xiàn),因為游標(biāo)向后游走的特性使得按位與的結(jié)果在0與1間變換,故而光標(biāo)的閃爍效果也出來了,然后將光標(biāo)附加在當(dāng)前顯示的文本內(nèi)容尾部即可。

又因為要逐字判斷字符類型,所以使用setInterval()方法作為定時器即可,這樣做的好處還可以讓我們自定義一個打字機(jī)的速度。如下圖中typewriter方法的名為speed的參數(shù)所示。當(dāng)游標(biāo)移動到內(nèi)部內(nèi)容的結(jié)束處事,不要忘了調(diào)用clearInterval()消除定時器。

整個函數(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);

用法很簡單,舉例如下:

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

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

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

即可。

值得注意的是:如果文本內(nèi)容包括字符"<"和">",則顯示不出來,因為方法會將它們當(dāng)作html標(biāo)簽而跳過。

請看效果:


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

來源:http://tudas.cnblogs.com/

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 激情网综合 | 久久三级视频 | 国产精品亚洲片在线播放 | 精品久久av| 麻豆精品| 国产欧美日韩在线视频 | 亚欧洲精品视频在线观看 | 日韩在线视频播放 | 色av吧| 国产精品久久久久久久久久99 | 国产欧美91| 日韩欧美小视频 | 91看电影 | 中文字幕一区二区三区乱码图片 | 欧美日韩国产一区二区在线观看 | 免费日韩一区二区 | 午夜精品久久久久久久久久久久久 | 亚洲黄色三级 | 可以在线观看的av | 国产成人av在线 | 日韩在线视频免费 | 久久精品毛片 | 亚洲女人天堂成人av在线 | 久久久久久久亚洲视频 | 成人在线播放 | 久久精品国产一区二区 | 精品一区二区免费 | 免费国产精品视频 | 成人在线观看视频网站 | 大毛片| 色婷婷综合久久久中文字幕 | 亚洲一区二区黄 | 久久久久久久久久综合 | 99re视频在线 | 欧美怡红院视频 | 日韩电影一区二区三区 | 精品电影一区 | 久久尤物| 久久免费视频在线观看 | 久久国产福利 | 一区二区免费视频 |