javascript - 我可以使用打字多行的 Javascript 吗?
问题描述
我想创建一个网页,让它看起来像一台使用“typeWrite”功能启动的旧计算机,并在段落后添加一个“_”。文本将多行写入一个 div(如“检查 RAM....OK”“检查 CD-ROM....OK”等)。我不能让字符串转到下一行。我已经尝试
和\n,我尝试拆分字符串并用\n 加入它。我试图在我希望该行结束的地方加上一个反斜杠()。没有成功。有任何想法吗??
var i = 0;
var txt = 'First line, second line, third line, and more';
var speed = 150;
function typeWriter() {
if (i < txt.length) {
document.getElementById("demo").innerHTML += txt.charAt(i);
i++;
setTimeout(typeWriter, speed);
}
}
<button onclick="typeWriter()">Click me</button>
<div class="typewriter">
<p id="demo" class="text"></p><span>_</span>
</div>
解决方案
这是因为 HTML 通常不尊重空格。您可以尝试使用中断标记 ( <br>
),但由于您的文本已生成,您也可以只更改段落的样式。如果添加white-space: pre
它将尊重\n
字符。
var i = 0;
var txt = 'First line,\nsecond line,\nthird line,\nand more';
var speed = 50;
function typeWriter() {
if (i < txt.length) {
document.getElementById("demo").innerHTML += txt.charAt(i);
i++;
setTimeout(typeWriter, speed);
}
}
#demo {
white-space: pre;
}
<button onclick="typeWriter()">Click me</button>
<div class="typewriter">
<p id="demo" class="text"></p><span>_</span>
</div>
推荐阅读
- maven - Maven CLI 编译错误:此环境中未提供编译器
- git - 构建镜像时获取或复制 dockerfile 中的外部依赖文件夹
- java - 如何在控制器上制作“警报”或“弹出”
- reactjs - 如何在 Express 中查找路线?
- c# - 如何在 c# (RSA) 中通过私钥加密
- java - Junit5 的 @CsvFileSource 注释不适用于 Eclipse
- javascript - 如何测试 Angular mat-nav-list 是否包含元素?
- robotframework - RobotFramework - 导入测试库“AutoItLibrary”失败:初始化没有参数的测试库“AutoItLibrary”失败
- conv-neural-network - 在 pytorch 中汇集通道
- php - Mysql - 如果值不存在,则使用另一个表