javascript - 带有 JavaScript 的 HTML 打字机效果

标签 javascript jquery html string

<分区>

我想执行以下操作:我想在 HTML/JavaScript(jQuery/jQuery UI,如果需要)中具有打字机效果。关于如何在字符串上创建打字机效果的示例有很多(例如 this one )。我想做类似的事情,但要使用完整的 HTML 字符串,不应将其输入,而应将其正确插入到网页中。

示例字符串:

<p>This is my <span style='color:red;'>special string</span> with an <img src="test.png"/> image !</p>

这个字符串应该用打字机动画打出来。 “特殊字符串”的颜色应该是红色的,即使在打字时也是如此,图像应该出现在“an”这个词之后和“image”这个词之前。现有解决方案的问题在于,它们将标记逐个字符地插入到网页中,这导致在本例中键入“特殊字符串”时未关闭。我考虑过使用 jQuery 解析字符串并遍历数组,但我不知道如何处理嵌套标签(如本例中的 p 和 span)

最佳答案

我认为你真的不需要插件来做这些事情,我举了一个简单的例子:

html:

 <div id="typewriter"></div>

js:

var str = "<p>This is my <span style='color:red;'>special string</span> with an <img src='http://placehold.it/150x150'> image !</p>",
    i = 0,
    isTag,
    text;

(function type() {
    text = str.slice(0, ++i);
    if (text === str) return;

    document.getElementById('typewriter').innerHTML = text;

    var char = text.slice(-1);
    if( char === '<' ) isTag = true;
    if( char === '>' ) isTag = false;

    if (isTag) return type();
    setTimeout(type, 80);
}());

这是关于 jsfiddle 的演示

关于javascript - 带有 JavaScript 的 HTML 打字机效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22180457/

相关文章:

javascript - 如何使用Jquery在div中加载页面时显示进度条

javascript - 使用ajax从表单传递aid的当前行值

html - 将 Paypal 下拉列表更改为可点击的图像

javascript - 谷歌地图是我的 Ember 组件中的一个灰色框

javascript - 如何在 Ember 应用程序中实现嵌套全局过滤器?

JavaScript——来自 John Resig 的学习高级 JavaScript 的示例 #10

jquery - cakephp 渲染元素与数据

javascript - 从javascript函数设置HTML段落中的文本而不格式化

javascript - 为什么在使用 sendFile() 方法为 node.js 中的两条路由提供静态文件时出现错误

javascript - 在高度 : auto container 中垂直对齐和绝对定位 div 时遇到问题