#javascript #html
#javascript #HTML
Вопрос:
Я использую JavaScript для добавления прослушивателя событий, который заставит текст появляться внутри фотографии в моем HTML-документе при наведении курсора мыши. Мне удалось добавить событие, и когда я прокручиваю картинку, мой текст появляется внутри картинки.
Моя проблема в том, что, хотя текст отображается внутри фотографии, как и планировалось, как только текст появляется, он изменяет формат документа и удаляет из него все окружающие элементы. Я хотел бы иметь возможность добавлять текст внутри элемента, не влияя на макет окружающих элементов.
Я пытался использовать innerHTML, appendChild и textContent для решения этой задачи. Все они успешно отображают мой текст внутри элемента, но у всех них одинаковая проблема с удалением от него окружающих элементов.
<script>
document.getElementById("box1").addEventListener("mouseover", mouseOver);
function mouseOver() {
var pictureContent = document.createElement("p");
pictureContent.textContent = "China, officially the People's Republic of China, is a country in East Asia and the world's most populous country,";
document.getElementById("box1").appendChild(pictureContent);
}
</script>
Комментарии:
1. Похоже, это скорее проблема с CSS.
2. можете ли вы поделиться HTML-кодом
3. вероятно, нужен
position:absolute
CSS
Ответ №1:
Ваша проблема скорее связана с CSS, просто добавьте position: absolute
стили позиционирования после создания элемента с помощью style.cssText
.
function mouseOver() {
var pictureContent = document.createElement("p");
pictureContent.textContent = "China, officially the People's Republic of China, is a country in East Asia and the world's most populous country,";
pictureContent.style.cssText = "position:absolute"
document.getElementById("box1").appendChild(pictureContent);
}
Комментарии:
1. Спасибо за вашу помощь. Я смог добавить текст на страницу, не влияя на расположение окружающих элементов. Проблема сейчас в том, что «позиция: абсолютная» означает, что текст будет отображаться в строке, и я не могу разбить его на куски, необходимые для размещения его в поле, которое мне нужно. У вас есть какие-либо предложения по этому поводу?
2. Что вы подразумеваете под разделением на фрагменты? Вы имеете в виду перенос текста?
3. Привет, James_F. Я нашел решение. Я использовал innerHTML вместо textContent, что позволило мне использовать <br> для разделения строк и обеспечения того, чтобы текст помещался в нужное мне поле. На данный момент у меня все готово, но, пожалуйста, дайте мне знать, если у вас возникнут какие-либо вопросы или комментарии. Спасибо за ваш вклад!