【发布时间】:2019-12-29 11:55:29
【问题描述】:
我尝试逐个字符地更改任何文本(逐个字符显示文本,逐个字符删除文本并逐个字符显示另一个字符)。
我实际拥有什么?
var i = 0;
var terms = ['text <b>bold</b>', 'longer text <b>bold</b>', '<b>bold</b> text 3'];
var timer = setInterval(function() {
var el = $('#el');
var wr = $('#wr');
setInterval(function() {
var str = el.html(); // doesn't work (still shows all content, not sliced one)
el.html(str.substring(0, str.length - 1));
}, 300 / str.length); // (300 / str.length) - do all animation in 300s
i++;
if (i === 3) {
i = 0;
}
}, 2500);
我在分割最后一个字符时遇到问题,所以到目前为止我还没有添加新文本:-(
我尝试过的一种变体:
...
var text = terms[i].split('');
setInterval(function() {
el.html(text); // add sliced text in loop... not working as expected
// ...
text = text.slice(0, -1); // slice text by last character
}, 300 / text.length);
好的,由于cmets的一点解释
我有一个元素
<span id=el>text <b>bold</b></span>
在 300 毫秒的间隔内,我需要逐个字符地删除此文本。
<span id=el>text <b>bold</b></span>
<span id=el>text <b>bol</b></span>
<span id=el>text <b>bo</b></span>
<span id=el>text <b>b</b></span>
<span id=el>text <b></b></span> // remove 'b'
<span id=el>text</span> // remove ' ' and empty bold
<span id=el>tex</span>
<span id=el>te</span>
<span id=el>t</span>
<span id=el></span>
// now element is empty, since start it's 300ms
// and now I need to put there new text, char by char (whole phrase 300ms again)
<span id=el>l</span>
<span id=el>lo</span>
<span id=el>lon</span>
...
<span id=el>longer tex</span>
<span id=el>longer text</span>
<span id=el>longer text </span> // add space
<span id=el>longer text <b>b</b></span> // add 'b' into bold
<span id=el>longer text <b>bo</b></span>
<span id=el>longer text <b>bol</b></span>
<span id=el>longer text <b>bold</b></span>
// after 2500ms remove this char by char again and replace by third. Etc.
等等。你能帮我吗?尝试了过去 2 天,多次尝试,没有结果...
谢谢
【问题讨论】:
-
terms在哪里发挥作用?classes中的各种值的定义是什么?如果您添加更多代码并将其转换为完整的代码 sn-p,将会很有帮助。 -
请说明你有什么,你想要什么。让你的问题更清楚
-
@Booboo:
var terms在第二行定义。 -
是的,但是我们不知道
cls1类的定义,对吗?我说的是“值 inclasses”。大概这是CSS风格。 -
我已经添加了一点解释...更清楚? :-)
标签: javascript jquery substring