Не работает перенос строки JavaScript
Есть вот такой код.
document.addEventListener("DOMContentLoaded", function() {
let text = "Привет меня зовут Гриша.\n Я иду в восьмой класс.";
let index = 0;
function type() {
if (index < text.length) {
document.getElementById("scene").textContent += text.charAt(index);
index++;
setTimeout(type, 100);
}
}
type();
});
* {
margin: 0;
padding: 0;
box-sizing: border-box;
cursor: url("http://www.rw-designer.com/cursor-view/6921.png"), auto;
}
body {
background: Black;
font-family: Courier, monospace;
}
#scene {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
animation: Typing 0.75s step-end 1;
color: red;
}
@keyframes blinkCursor {
from {
border-right-color: rgba(0, 0, 0, 0.75);
}
to {
border-right-color: transparent;
}
}
<!DOCTYPE html>
<html>
<head>
<title>Печатающий текст.</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="css/style3.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.11.3/jquery-ui.js"></script>
</head>
<body>
<div id="scene">
</div>
</body>
</html>
Почему то не переносится текст. Я предполагаю что проблема где-то в коде нежели то, что я ставлю \n. Пробывал br и то и то не работает. И все же почему?
Ответы (1 шт):
Автор решения: Grundy
→ Ссылка
По-умолчанию, при рендеринге html браузер заменяет все пробельные символы на пробел, если символов несколько подряд - выведется один пробел.
Чтобы изменить это поведение можно воспользоваться свойством white-space
со значением pre
.
document.addEventListener("DOMContentLoaded", function() {
let text = "Привет меня зовут Гриша.\nЯ иду в восьмой класс.";
let index = 0;
function type() {
if (index < text.length) {
document.getElementById("scene").textContent += text.charAt(index);
index++;
setTimeout(type, 100);
}
}
type();
});
* {
margin: 0;
padding: 0;
box-sizing: border-box;
cursor: url("http://www.rw-designer.com/cursor-view/6921.png"), auto;
}
body {
background: Black;
font-family: Courier, monospace;
}
#scene {
position: absolute;
width: 400px;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
animation: Typing 0.75s step-end 1;
color: red;
white-space: pre;
}
@keyframes blinkCursor {
from {
border-right-color: rgba(0, 0, 0, 0.75);
}
to {
border-right-color: transparent;
}
}
<!DOCTYPE html>
<html>
<head>
<title>Печатающий текст.</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="css/style3.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.11.3/jquery-ui.js"></script>
</head>
<body>
<div id="scene"></div>
</body>
</html>