`
小杨学JAVA
  • 浏览: 901641 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

jquery typewriter 打字机效果

    博客分类:
  • js
 
阅读更多

 

转http://www.cnblogs.com/tudas/archive/2011/11/05/typewriter.html

 记得以前看电视的时候,电视里偶尔会出现文字一个紧接一个出现,伴随着打字机滴答滴答声音的字幕效果,常常好奇其实现效果。今天周末,没课就顺便想了想用javascript实现打字机效果。用了一个小时左右,就做出来,代码不过几十行。

    先说下思路:一些典型的嵌套文字的html容器标签可以是这样:

1 <span>一行嵌套在span标签里的文字</span>
2 <p>一段嵌套在p标记的文字</>
3 <div>一段嵌套在div标记里的文字</div>

    因此,我们首先要取得容器内部内容。这可以通过给容器赋id,然后用jquery的$("#id").html()方法获取到,并将获取到的内容赋与一字符串变量。接着设一方向向后,步长为1的游标,逐字判断,若是字符"<”跳过,这样做的目的是因为某些嵌套使用标签的情况存在,例如:

1 <span>嵌套使用<font color="red">标签</font>,这种情况下
2 应该跳过内层的标签,因为内层标签只是提供了一种表现形式</span>

    在这种情况下应该跳过内层的标签,因为它们只是提供了一种表现形式,不属于正文。所以此时游标应跳到下一个相应的">"字符后一位的位置。最后我们使用substring()方法截取,对象是之前接收了标签内部内容的字符串变量,截取内容为起始位置到当前游标所在位置之间的一段文本。这样就能使文本内容逐渐变长。

    当然了,因为要的是打字机效果,所以我们可以使用字符"_"来模拟一个光标。用字符串"_"和""来模拟光标的闪烁效果。这可以通过使用游标与1按位与来实现,因为游标向后游走的特性使得按位与的结果在0与1间变换,故而光标的闪烁效果也出来了,然后将光标附加在当前显示的文本内容尾部即可。

    又因为要逐字判断字符类型,所以使用setInterval()方法作为定时器即可,这样做的好处还可以让我们自定义一个打字机的速度。如下图中typewriter方法的名为speed的参数所示。当游标移动到内部内容的结束处时,不要忘了调用clearInterval()消除定时器。

整个函数的代码如下:

复制代码
 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标记的文字</p> 
2 <p id="p2">嵌套在p标记里的<span>标记</span></p>

在html页面先引用jquery库,再引入typewriter js文件。然后调用方法:

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

即可。

    请看效果:http://www.wandouyouxi.com/cnblogs/typewreiterDemo/demo.html

    demo下载:http://www.wandouyouxi.com/cnblogs/typewreiterDemo.zip

    值得注意的是:如果文本内容包括字符"<"和">",则显示不出来,因为方法会将它们当作html标签而跳过。

文章最后,谢谢各位阅读。如转载,请注明出处。

分享到:
评论

相关推荐

    jQuery打字机

    为了简化开发,有许多jQuery插件提供了打字机效果,如` Typed.js` 和 `jQuery Typewriter Effect`。这些插件通常提供更丰富的配置选项,如回删效果、暂停与恢复、速度控制等。 5. **自定义实现** 对于不使用插件...

    jQuery打字机动画效果插件typewriting

    开发者可以通过调用这个插件,并传入相应的配置参数,来实现打字机效果。 例如,要在网页上使用`typewriting`插件,首先需要在HTML文件中引入jQuery库和插件的JavaScript文件。在`index.html`中,可能包含以下代码...

    jQuery打字机动画效果插件typewriting.zip

    jQuery打字机动画效果插件typewriting.zip是一款基于jQuery的实用工具,它为网页添加了生动有趣的打字机效果。这种效果模拟了老式打字机逐字符打印文本的过程,给网页增添了一种复古而现代的交互体验。在网页设计中...

    jquery实现颜色打字机

    在`&lt;script&gt;`标签中引入jQuery库,然后编写实现颜色打字机效果的脚本: ```javascript $(document).ready(function() { var typingText = "这是一段示例文字"; // 要显示的文本 var index = 0; var ...

    10种jQuery打字机文字飞入动画代码

    **jQuery打字机文字飞入动画**是一种动态展示文本的特效,常用于网站的欢迎页或介绍部分,能吸引用户注意力并提升用户体验。在本文中,我们将深入探讨10种不同的jQuery实现打字机文字飞入动画的方法,以及如何通过...

    jQuery+typewriting插件模拟打字机打字特效源码(可配置打字速度).zip

    这个压缩包“jQuery+typewriting插件模拟打字机打字特效源码(可配置打字速度).zip”包含了一个使用jQuery实现的打字机效果插件,能够为网页添加一种动态的、模拟打字机输入的文字展示效果,增加用户的互动体验。...

    jQuery实现的超酷文字动画类似打字机的效果.zip

    在本资源中,我们关注的是使用jQuery库来创建一种类似于打字机效果的文字动画。jQuery是一种广泛使用的JavaScript库,它简化了HTML文档遍历、事件处理、动画设计和Ajax交互等任务。通过jQuery,开发者可以编写更简洁...

    网页模板——jQuery实现可自定义打字参数的打字机文字特效源码.zip

    在实现打字机效果时,jQuery允许我们编写简洁且易于理解的代码。 打字机特效通常涉及到以下步骤: 1. **初始化**:在HTML中,我们需要一个元素(如`&lt;p&gt;`或`&lt;span&gt;`)来承载即将显示的文字。这个元素通常有一个初始...

    原生js代码打字机效果_一个个文字输入效果

    在JavaScript的世界里,实现“打字机效果”是一种常见的动态展示文本的方式,它模拟了旧式打字机逐字输入的动画过程。这种效果能够吸引用户的注意力,增加交互性,常用于网页加载提示、欢迎语或者任何需要动态展示...

    TWriterjs用于实现原生打字机效果没有任何依赖

    **T-Writer.js** 是一个轻量级的JavaScript库,专为实现原生打字机效果而设计。这个库的独特之处在于它不依赖任何其他外部框架或库,如jQuery或其他常见UI库,使得它在项目集成时更加简洁、高效。在网页设计中,打字...

    jquery实现动画打字效果特效代码

    本文将深入探讨如何使用jQuery实现动画打字效果,这种效果常见于电影预告片和各种视觉呈现中,能给用户带来强烈的视觉吸引力。 首先,我们需要理解基本的jQuery动画原理。jQuery的`.animate()`函数是实现动画的核心...

    Typewriter.js:一个jQuery插件,用于动画输入和删除文本

    Typewriter.js 一个用于为键入和删除文本设置动画的jQuery插件。 使用方法: 要使用Typewriter.js,只需将Typewrite函数链接到jQuery... 在上面的示例中,打字机将键入h1标签的文本值(“富有想象力的标题”)。 如

    jQuery打字机文字输入特效特效代码

    在jQuery中,这种打字机效果通常通过定时器(setTimeout 或 setInterval)以及字符串处理函数来实现。开发者首先定义要显示的文本,然后将其拆分为字符数组。接下来,通过循环遍历字符数组,每次将一个字符添加到...

    推荐20款基于 jQuery & CSS 的文本效果插件

    2. Typewrite.js:模拟打字机效果,逐字符显示文本,增加趣味性。 3. CountUp.js:用于动态显示数字计数,例如统计数据或倒计时,适用于进度条或计数器。 4. TextSlide.js:滑动展示文本,可自定义速度和方向,...

    typewriter.js代码打印机效果

    `typewriter.js` 是一个JavaScript库,用于实现代码打印机效果,让代码在网页上像打字机一样逐行展示,增强了用户体验,同时也为网站或应用增添了一丝动态趣味性。这个插件基于纯JavaScript编写,无需依赖其他大型库...

    dat-typewriter:只是一个我无聊的打字机脚本

    标题中的“dat-typewriter”是一个项目名称,它被描述为一个打字机脚本,意味着这个项目可能是用于创建一种模拟传统打字机效果的程序。打字机脚本在网页设计或动态文本展示中可能会有独特应用,它可以为用户界面增添...

    文本打字机

    在创建文本打字机效果时,jQuery提供了方便的API和方法,如`.animate()`用于制作动画,`.delay()`用于设置延迟,以及`.html()`或`.text()`用于修改元素的内容。 实现"文本打字机"效果的基本步骤如下: 1. **HTML...

    TypeLighterJS-Typewriter:迈向充满活力和吸引力的打字机世界。 您可以确定自己永远不会想回头

    (没有JQUERY)描述 : TypeLighter.js是一个免费插件,可在您的网页中添加打字机。 使用此插件,八个属性可让您微调您想要与用户共享的体验。 它们中的大多数是预定义的,但是您可以使用data属性更改它们的值。...

    typewriter

    在IT领域,"typewriter"这个词可能让人联想到复古的物理打字机,但在现代技术中,它可能指的是一个特定的软件项目、编程工具或模拟打字体验的应用。在这个场景下,由于没有具体的标签信息,我们将主要从"typewriter-...

Global site tag (gtag.js) - Google Analytics