Появление и исчезновение картинки при клике по кнопке на Javascript

появление картинки при клике JS

От одного из моих подписчиков на YouTube канале поступил достаточно интересный вопрос. Он спросил, как сделать так, чтобы при нажатии на кнопку появлялась картинка в браузере. А при повторном нажатии на кнопку, чтобы эта картинка исчезала.

Этот вопрос показался мне интересным по нескольким причинам. Во-первых – его задал человек, который совершенно не разбирается в программировании, а моя цель именно в том, чтобы помогать таким людям. Во-вторых, ответив на этот вопрос я могу одновременно раскрыть несколько тем по программированию на Javascript.

Алгоритм программы

Первое с чего нужно начинать создание любой программы – это продумать её алгоритм. То есть нужно расписать каждый шаг, который должна будет выполнить наша программа на пути к реализации поставленной задачи. А также, нужно составить алгоритм своих действий при написании программы.

Последовательность создания программы

  1. Создать HTML документ и поместить на него 2 объекта: картинку и кнопку.
  2. Создать функцию, которая будет скрывать картинку (или отображать её), если пользователь нажмёт на кнопку.
  3. Создать событие для кнопки onClick, которое будет вызывать нашу функцию.

Алгоритм работы программы

  1. Нажатие на кнопку.
  2. Вызов функции.
  3. Если картинка в браузере не отображается, то показать её.
  4. Если картинка видна в браузере, то спрятать её.

Вот так вот приблизительно, для себя, мы набросали что должны сделать и как будем это реализовывать. Теперь можно приступать непосредственно к программированию.

Исчезновение картинки при клике по кнопке

Для начала, сделаем так, чтобы при нажатии на кнопку картинка исчезала.

HTML

<img id="img_1" style="display:block;" src="/Clipboard01.jpg">
<button type="submit" onclick="myImg()">Показать/Скрыть картинку</button>

JS

function myImg() {
	document.getElementById('img_1').style.display='none';
}

В данном примере, при загрузке страницы в браузере, мы выводим на экран картинку Clipboard01. Для этой картинки мы указываем атрибуты id и style. С помощью document.getElementById мы получаем ссылку на элемент по его идентификатору (по ID) и меняем атрибут style на display:none. То есть делаем картинку невидимой (скрываем её отображение в браузере).

Отображение картинки при нажатии на кнопку

Теперь давайте сделаем так, чтобы при нажатии на кнопку, картинка отображалась в браузере.

HTML

<img id="img_1" style="display:none;" src="/Clipboard01.jpg">
<button type="submit" onclick="myImg()">Показать/Скрыть картинку</button>

JS

function myImg() {
	document.getElementById('img_1').style.display='block';
}

В данном примере, мы просто поменяли местами стиль отображения картинки. То есть, изначально при открытии HTML документа картинка у нас не видна (style="display:none;"), а когда мы нажимаем на кнопку, то происходит замена display:none на display:block и картинка становится видимой.

Появление и исчезновение картинки при нажатии кнопки

Теперь, поняв как всё работает, мы можем объединить первый и второй вариант кода и написать условие, используя операторы If Then Else:

HTML

<img id="img_1" style="display:none;" src="/Clipboard01.jpg">
<button id="submit" onclick="myImg()">Показать/Скрыть картинку</button>

JS

function myImg() {
  let elem = document.getElementById('img_1'); // получаем элемент по ID
  let style = getComputedStyle(elem); // получаем его стили
  if (style.display === 'none') {
    document.getElementById('img_1').style.display='block';
    } else if (style.display !== 'none') {
    document.getElementById('img_1').style.display='none';
  }
}

В этом примере, мы изначально делаем картинку невидимой, указав style="display:none;".

При нажатии на кнопку, мы получаем ссылку на нашу картинку по ID.

Затем, с помощью getComputedStyle получаем объект, содержащий значения всех CSS-свойств элемента (в данном случае нашей картинки).

После этого происходит проверка, если у картинки свойство display равно none (то есть, если картинка не отображается), то мы меняем его на block и тем самым выводим картинку на экран.

Если же свойство display не равно none (то есть картинка видна), то мы меняем его на none и тем самым скрываем изображение.

Обратите внимание на то, что втором условии мы выполнили проверку именно неравенства (указали НЕ равно none), хотя могли написать условие else if (style.display === 'block'). Этот вариант тоже будет работать, но при условии что для отображения картинки мы всегда будем использовать display:block.

Видео по теме урока

Наши рекомендации

Сollaborator

Hosting Ukraine

АВТОРИЗАЦИЯ