jQuery打字机效果代码
jQuery打字机效果代码属于前端实例代码,有关更多实例代码大家可以查看。
本章节分享一段代码实例,它利用jQuery模拟实现了打字机效果。
代码实例如下:
<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.pipipi.net/" /> <title>前端教程网</title> <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script> <script type="text/javascript" charset="utf-8"> $(function () { $.fn.typewriter = function () { this.each(function () { var $ele = $(this), str = $ele.html(), sum = 0; $ele.html(""); var timer = setInterval(function () { var current = str.substr(sum, 1); if (current == '<') { sum = str.indexOf('>', sum) + 1; } else { sum++; } var curr = str.substr(0, sum); $ele.html(curr + (sum & 1 ? '_' : '')); if (sum >= str.length) { clearInterval(timer); } }, 50); }); return this; }; $("#code").typewriter(); }) </script> </head> <body> <div id="code"> 前端教程网欢迎您,本站的url地址是pipipi.net<br/> 只有努力奋斗才会有美好的未来。<br/> </div> </body> </html>
上面的代码实现了打字效果,下面介绍一下它的实现过程。
一.代码注释:
(1).$(function () {}),当文档内容完全加载完毕再去执行函数中的代码。
(2).$.fn.typewriter = function () {},为jquery自定义实例对象方法。
(3).this.each(function () {}),遍历每一个元素对象。
(4).var $ele = $(this),each中的this是指向dom元素的,所以要将其转换为jquery对象。
(5).str = $ele.html(),获取元素的html字符串。
(6).sum = 0,声明一个变量并赋值为0,用作计数器。
(7).$ele.html(""),清空元素中的内容。
(8).var timer = setInterval(function () {},50),每隔50毫秒执行一次函数,这是实现打字效果的核心部分。
(9).var current = str.substr(sum, 1),截取当前位置的字符。
(10).if (current == '<') {
sum = str.indexOf('>', sum) + 1;
},作用是为了实现<br/>换行功能。
如果没有这段代码,那么就会输出<、<b、<br..这样的效果,然后再换行。
(11).var curr = str.substr(0, sum),截取内容。
(12).$ele.html(curr + (sum & 1 ? '_' : ''))
将内容写入元素中
sum & 1 ? '_' : '',这个的作用在打字输出的时候每隔一个数字,后面会出现一个下划线。
(13).if (sum >= str.length) {
clearInterval(timer);
},,如果sum的值大于等于字符串的数目,那么就停止打字。
二.相关阅读:
(1).$.fn参阅jQuery.fn的作用是什么一章节。
(2).html方法参阅jQuery html()一章节。
(3).setInterval方法参阅JavaScript setInterval()一章节。
(4).substr方法参阅JavaScript substr()一章节。
(5).indexOf方法参阅JavaScript string indexOf()一章节。
(6).clearInterval方法参阅JavaScript clearInterval()一章节。
jQuery打字机效果代码,这样的场景在实际项目中还是用的比较多的,关于jQuery打字机效果代码就介绍到这了。