JavaScript

Java Script простым языком

codepen.io/ColleenEMc/pen/wKYxZa - все коды здесь!

Дан HTML, дан CSS . нужно просто написать функцию так, чтобы когда наводишь на фото, то это фото появляется в div вместо синего фона. И alt фотографии появлялся вместо текста div

Все это нужно сделать с помощью id

Пожалуйста!!!! Распишите все пункты, которые вы пишете, подробно! Я действительно в отчаянии! Все понимаю, но вместе это как-то все не складывается!

Заранее спасибо! Очень благодарна за помощь!
Alexey Guriyanov
Alexey Guriyanov
96
codepen.io/muhurov/pen/byvYRE

const displayNode = document.querySelector("#image"); // сохраняем ссылку на элемент, в который будет выводиться картинка
const defaultBackgroundImage = displayNode.style.backgroundImage; // сохраняем дефолтный background (чтобы вернуть на место, когда нужно)
const defaultText = displayNode.innerText; // сохраняем дефолтный текст (чтобы вернуть на место, когда нужно)

//функция обработки "захода мыши" на картинку
function upDate(previewPicNode){
// previewPicNode - ссылка на элемент img
displayNode.style.backgroundImage = `url(${previewPicNode.src})`; // меняем картинку
displayNode.innerText = previewPicNode.alt; // меняем текст
}

//функция обработки "выхода мыши" из картинки
function unDo(){
displayNode.style.backgroundImage = defaultBackgroundImage; // возвращаем назад background
displayNode.innerText = defaultText; //возвращаем назад текст
}
Антон Крылов
Антон Крылов
5 745
Лучший ответ
Alexey Guriyanov Спасибо огромное за ваш ответ!!! Это очень ценно!

у меня еще возникли вопросы по этой функции

displayNode.style.backgroundImage = `url(${previewPicNode.src})`;

`url(${previewPicNode.src})`; что это обозначает? есть ли более развернутая запись формулы ?? Простите, что надоедаю
Alexey Guriyanov Спасибо огромное! Разобралась!!!
<img id="im" src="https://st2.depositphotos.com/2001755/5408/i/450/depositphotos_54081723-stock-photo-beautiful-nature-landscape.jpg" alt='АЛЬТЕРНАТИВНЫЙ ТЕКСТ'>
<div></div>
<script type="text/javascript">
var div = document.getElementsByTagName('div')[0];
div.style.width = '450px';
div.style.height = '450px';
div.style.backgroundColor = 'blue';
div.style.float = 'right'
im.onmouseover = function () {
div.style.backgroundImage = 'url(https://st2.depositphotos.com/2001755/5408/i/450/depositphotos_54081723-stock-photo-beautiful-nature-landscape.jpg)';
div.innerHTML = im.alt;
}
im.onmouseleave = function () {
div.style.backgroundImage = 'none'
div.innerHTML = '';
}
</script>
Полезно сперва делать миниатюрный вариант, чтобы на месте видеть результат. На вашей большой картинке задолбались бы каждый раз скроллить и смотреть, что получается))

https://jsfiddle.net/OPTlMUS/v29e08nw/ - объяснения записал там же.

addEventListener - добавляет событие на выбранный элемент и избавляет от записи событий в HTML... как-то попроще получается) И на самом деле, если эти функции больше нигде не будут использоваться, можно сразу записать в таком виде: https://jsfiddle.net/OPTlMUS/3Lzs6txa/ , прямо внутри события...
Alexey Guriyanov Спасибо, сейчас посмотрю
Alexey Guriyanov классно объснили!!! Спасибо огромное!! Только не удаляйте содержимое ссылки!
Привет, а почему бы это не сделать через css? допустим с помощью background?
Alexey Guriyanov это просто условие задания на курсах. Сделать через JS