Javascript-форум (https://javascript.ru/forum/)
-   (X)HTML/CSS (https://javascript.ru/forum/xhtml-html-css/)
-   -   Смена картинки на кнопке. (https://javascript.ru/forum/xhtml-html-css/79629-smena-kartinki-na-knopke.html)

III 02.03.2020 13:25

Смена картинки на кнопке.
 
Всем привет. Устал искать как сделать, чтобы при нажатии кнопки на ней менялась картинка. Нашел пример
<img id="myImg" src="compman_lowres.gif" width="107" height="98">
<br><br>
<button onclick="document.getElementById('myImg').src='5.png'">Да</button>
<button onclick="document.getElementById('myImg').src='8.png'">Нет</button>
, но там две кнопки, а нужно чтобы все работало от одной. При открытии страницы появилась кнопка с картинкой №1, нажал на кнопку - катанка №2 и так при каждом нажатии эти две картинки чередовались межу собой.
Всем спасибо.

рони 02.03.2020 13:47

III,
:-?
<!DOCTYPE html>
<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
   .ok{
       width: 100px;
       height: 100px;
       background-image: url(https://www.katrins-zoooase.de/images/Fotolia_57528839_XS_png.png);
       background-repeat: no-repeat;
       background-size:  contain;
   }
   .ok:after{
       content: 'Нет';
       color: #FFFFFF;
   }
   .ok.cat:after{
       content: 'Да';
       color:  #000000;
   }
    .ok.cat{
      background-image: url(https://cdn2.scratch.mit.edu/get_image/gallery/326029_170x100.png);
      background-color: #FFFFFF;
   }
  </style>

</head>
<body>
<button class="ok" onclick="this.classList.toggle('cat')"></button>

</body>
</html>

Nexus 02.03.2020 13:48

<button>
  <img src="">
</button>
<style>
button {
  max-width: 300px;
}

img {
  max-width: 100%;
}
</style>
<script>
const allowedImages = [
	'https://static.tildacdn.com/tild3739-3339-4864-b734-386336353235/20143010160217.jpg',
  'https://static.ngs.ru/news/99/preview/6c6786496a5b02d55635825ce30ad55800531fc0_824_549_c.jpg',
  'https://cs8.pikabu.ru/post_img/big/2016/12/28/1/1482881197192578721.jpg',
];
let currentImageIndex = -1;

const button = document.querySelector('button');

button.addEventListener('click', function () {
	this.querySelector('img').src = allowedImages[++currentImageIndex % allowedImages.length];
});

button.dispatchEvent(new Event('click'));
</script>

III 02.03.2020 14:02

Всем спасибо за быстрый ответ! Сейчас попробую у себя сделать. Только вот проблема с кодом Nexus, при открытии файла в IE, вперёд появляется пустая (без картинки) кнопка, после первого нажатия появляется первый рисунок, потом 2-ой ну и так далее. В Chrome Edge такой проблемы нет. С вариантом рони таких проблем нет во всех 3-х браузерах.


Часовой пояс GMT +3, время: 12:15.