【发布时间】:2019-08-19 12:45:28
【问题描述】:
我正在尝试实现我所做的打字效果,但问题是我拥有和正在输入的文本在 <p> 标签内,因为它的内部 HTML 也有一些 HTML 标签,如 <span></span> 并且因为打字是char by char 它被输入是<span> 而不是呈现为元素。有什么方法可以在保持 HTML 标签不变的同时达到效果吗?我突出显示了包含在 span 中的单词,我最终想要实现的是将输入的单词突出显示...
function typeWriter() {
if (i < txt.length) {
document.getElementById("content_html").innerHTML += txt.charAt(i);
i++;
setTimeout(typeWriter, self.typing.speed);
}
}
typeWriter();
这是我尝试输入的文本示例:
<p>Surface chemistry deals with phenomena that occur at the surfaces or interfaces. Many important phenomena, noticeable amongst this being corrosion, electrode processes, heterogeneous catalysis, dissolution, and crystallization occur at interfaces. The subject of surface chemistry finds many applications in industry, analytical work, and daily life situations.</p>
它包含一个<p> 标记,将来可以更改为任何其他 HTML 标记,因为它来自服务器...
【问题讨论】:
-
所以澄清一下,您希望
<p>标记内的文本具有类型编写器效果。您希望<p>标记内的任何单词周围都有一个锚标记包装器来显示相同的类型编写器效果 - 但不是剥离其锚属性的元素,它将保留它们,并且一旦类型编写器效果完成,您就可以如您所愿点击链接? -
不,我有一个父
标签,它应该包含来自服务器的任何文本,但是来自服务器的文本可以包含 HTML 标签本身,就像用 spans 包裹的单词以获得某些效果......跨度>
-
如何使用库来解决这个问题。 jsfiddle.net/we8tchjk
-
@little_coder 该库做得对,但我有一个错误,它永远不会停止一遍又一遍地输入文本,必须在其脚本文件中查找错误
-
@little_coder 该库完美地完成了这项工作!错误就在我这边,我使用的是 Vue.js,由于动态内容渲染,它确实在循环中运行。这是在实现效果的同时保留样式、内部标签和动态内容的最佳选择,请将其添加为答案,以便我接受它
标签: javascript html css