Картинка как кнопка в данном случае

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

const MP3_URL = 'https://moosic.my.mail.ru/file/5a38b167bc1c86b7d83d1d1577b49ace.mp3';
 document.addEventListener('DOMContentLoaded', () => {
            // Для печати стихотворения
            const printText = () => {
                var textNodes = [];
                var textNodes_data = [];
                var i = 0;
 
                function search_textNodes(b) {
                    b = b.childNodes;
                    for (var c = 0, d = b.length; c < d; c++) {
                        var a = b[c];
                        if (a.nodeType == 3) {
                            textNodes.push(a);
                            textNodes_data.push(a.data);
                            a.data = ""
                        } else a.hasChildNodes() && search_textNodes(a)
                    }
                };
 
                var d = document.getElementById('test');
                search_textNodes(d);
 
                (function() {
                    var a = textNodes_data[i];
                    if (a) {
                        textNodes[i].data += a.charAt(0);
                        textNodes_data[i] = a.substr(1)
                    } else i++;
                    i < textNodes.length && setTimeout(arguments.callee, 160)
                })();
            }
 
            // Загрузка аудио и начало работы
            const audio = new Audio();
 
            const play = () => {
                audio.play().catch(e => {
                    alert(e.message);
                });
            };
 
            audio.addEventListener('canplaythrough', () => {
                const button = document.querySelector('.overlay button');
                if (!button) {
                    return;
                }
 
                button.textContent = 'Нажми на меня';
                button.disabled = false;
 
                button.addEventListener('click', () => {
                    document.querySelector('.overlay')?.remove();
 
                    audio.muted = false;
                    audio.loop = true;
                    audio.volume = 1; // 0..1
 
                    play();
                    printText();
                }, {
                    once: true
                });
            });
 
            audio.addEventListener('error', () => {
                alert(audio.error?.message ?? 'Something went wrong');
            });
 
            audio.src = MP3_URL;
        });
body {
      margin: 0;
    }
.container {

  width: 100%;
  margin: 0 auto;
  max-width: 1064px;
}

.image-stack::after {
    content: ' ';
    display: table;
    clear: both;
  }
  

#test {
      float: left;         
      z-index: 5; 
  }

.voda {
      float: left;         
      z-index: 1; 
  }

.prud {
      float: left;         
      z-index: 1;
  }


.overlay {
            position: fixed;
            top: 0;
            right: 0;
            bottom: 0;
            left: 0;
            margin: auto;
            display: flex;
            align-items: center;
            justify-content: center;
            background: #fff;
            z-index: 10;
        }

button {
            width: 160px;
            height: 60px;
            background-color: #3498db;
            border: 2px solid #2980b9;
            border-radius: 5px;
            padding: 10px;
            margin: 10px;
            color: #ffffff;
            box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

@supports (display: grid) {
.image-stack {
    display: grid;
    position: relative; // необходимо, чтобы перекрытие работало
    grid-template-columns: repeat(12, 1fr);
  }

  .voda {
 width: 1064px;
height: 310px;
grid-column: 4 / -1;
grid-row: 1; 
margin-top: 20em;
margin-left: 0em;  
  }
  
  .prud {
grid-column: 4 / -1;
grid-row: 1; 
margin-top: 6.2em;
margin-left: 0em;  
  }

    
#test { 
width: 32vw;
height: 25vw;
position: absolute; 
top: 0;
left: -27em;
top: 10em;
right: 0;
margin: auto;

text-align: left;
  color: white;
  font:  500 30px/1.5 'Syncopate', sans-serif;
  font-style: italic;

  text-shadow: 
    0 1px 0 #ccc, 
        0 2px 0 #c9c9c9,
        0 3px 0 #bbb,
        0 4px 0 #b9b9b9,
        0 5px 0 #aaa,
        0 6px 1px   rgba(0,0,0, 0.10),
        0 0px 5px   rgba(0,0,0, 0.10),
        0 1px 3px   rgba(0,0,0, 0.30),
        0 3px 5px   rgba(0,0,0, 0.20),
        0 5px 10px  rgba(0,0,0, 0.25),
        0 10px 10px rgba(0,0,0, 0.20),
        0 20px 20px rgba(0,0,0, 0.15);
 
 font-size: 2vw; }
<div class="overlay">
        <button type="button" disabled>
            Загрузка...
        </button>
    </div>

<div class="container">
  <div class="image-stack">

<img class="voda"
src="https://habrastorage.org/webt/7j/je/y1/7jjey1uhale7vcbfunz0hxqkfhu.gif" alt=""/>

<img class="prud"
src="https://habrastorage.org/webt/jo/kw/fh/jokwfh82qe5ugijblckqgdrg-kw.png" alt=""/>
</div>
  
  <div id="test">
С днём рождения, Андрюха !<br>
Дорогой наш рыбачок,<br>
Пусть всегда, без промедления,<br>
Рыбка дёргает крючок.<br>
Чтобы ты её, родную, <br>
Не ждал полдня на берегу, <br>
А ловил её большую, <br>
В море, в речке и в пруду ! <br>
</div> 
  
 </div>


Ответы (1 шт):

Автор решения: Sergey

Для тех кому был интересен ответ на данный вопрос. Без лишней болтовни и нажатия на всякие там кнопки.

const MP3_URL = 'https://moosic.my.mail.ru/file/5a38b167bc1c86b7d83d1d1577b49ace.mp3';
 document.addEventListener('DOMContentLoaded', () => {
  // Для печати стихотворения
  const printText = () => {
   var textNodes = [];
   var textNodes_data = [];
   var i = 0;
 
  function search_textNodes(b) {
  b = b.childNodes;
 for (var c = 0, d = b.length; c < d; c++) {
 var a = b[c];
 if (a.nodeType == 3) {
 textNodes.push(a);                           textNodes_data.push(a.data);
a.data = ""
} else a.hasChildNodes() && search_textNodes(a)
                    }
                };
 
 var d = document.getElementById('test');
 search_textNodes(d);
 
(function() {
  var a = textNodes_data[i];
  if (a) {
  textNodes[i].data += a.charAt(0);
  textNodes_data[i] = a.substr(1)
   } else i++;
   i < textNodes.length && setTimeout(arguments.callee, 160)
     })();
  }
 
 // Загрузка аудио и начало работы
 const audio = new Audio();
 const play = () => {
 audio.play().catch(e => {
 alert(e.message);
  });
      };
            audio.addEventListener('canplaythrough', () => {
 
 const button = document.querySelector('.overlay button');
 if (!button) return;
 const btn = document.createElement('input');
 btn.type = 'image';
 btn.src = 'https://habrastorage.org/webt/xw/7t/vu/xw7tvunnrzbaixx5gfneqhwqlw4.png';
  btn.width = '400';
  button.after(btn);
  button.remove();
 btn.addEventListener('click', () => {   
   
   
   document.querySelector('.overlay')?.remove();
 
                    audio.muted = false;
                    audio.loop = true;
                    audio.volume = 1; // 0..1
 
                    play();
                    printText();
                }, {
                    once: true
                });
            });
 
            audio.addEventListener('error', () => {
                alert(audio.error?.message ?? 'Something went wrong');
            });
 
audio.src = MP3_URL;
        });
body {
      margin: 0;
    }
.container {

  width: 100%;
  margin: 0 auto;
  max-width: 1064px;
}

.image-stack::after {
    content: ' ';
    display: table;
    clear: both;
  }
  

#test {
      float: left;         
      z-index: 5; 
  }

.voda {
      float: left;         
      z-index: 1; 
  }

.prud {
      float: left;         
      z-index: 1;
  }


.overlay {
            position: fixed;
            top: 0;
            right: 0;
            bottom: 0;
            left: 0;
            margin: auto;
            display: flex;
            align-items: center;
            justify-content: center;
            background: #fff;
            z-index: 10;
        }

button {
            width: 160px;
            height: 60px;
            background-color: #3498db;
            border: 2px solid #2980b9;
            border-radius: 5px;
            padding: 10px;
            margin: 10px;
            color: #ffffff;
            box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

@supports (display: grid) {
.image-stack {
    display: grid;
    position: relative; // необходимо, чтобы перекрытие работало
    grid-template-columns: repeat(12, 1fr);
  }

  .voda {
 width: 1064px;
height: 310px;
grid-column: 4 / -1;
grid-row: 1; 
margin-top: 20em;
margin-left: 0em;  
  }
  
  .prud {
grid-column: 4 / -1;
grid-row: 1; 
margin-top: 6.2em;
margin-left: 0em;  
  }

    
#test { 
width: 32vw;
height: 25vw;
position: absolute; 
top: 0;
left: -25em;
top: 10em;
right: 0;
margin: auto;

text-align: left;
  color: white;
  font:  500 30px/1.5 'Syncopate', sans-serif;
  font-style: italic;

  text-shadow: 
    0 1px 0 #ccc, 
        0 2px 0 #c9c9c9,
        0 3px 0 #bbb,
        0 4px 0 #b9b9b9,
        0 5px 0 #aaa,
        0 6px 1px   rgba(0,0,0, 0.10),
        0 0px 5px   rgba(0,0,0, 0.10),
        0 1px 3px   rgba(0,0,0, 0.30),
        0 3px 5px   rgba(0,0,0, 0.20),
        0 5px 10px  rgba(0,0,0, 0.25),
        0 10px 10px rgba(0,0,0, 0.20),
        0 20px 20px rgba(0,0,0, 0.15);
 
 font-size: 2vw; }
<div class="overlay">
        <button type="button" disabled>
            Загрузка...
        </button>
    </div>

<div class="container">
  <div class="image-stack">

<img class="voda"
src="https://habrastorage.org/webt/7j/je/y1/7jjey1uhale7vcbfunz0hxqkfhu.gif" alt=""/>

<img class="prud"
src="https://habrastorage.org/webt/jo/kw/fh/jokwfh82qe5ugijblckqgdrg-kw.png" alt=""/>
</div>
  
  <div id="test">
С днём рождения, Андрюха !<br>
Дорогой наш рыбачок,<br>
Пусть всегда, без промедления,<br>
Рыбка дёргает крючок.<br>
Чтобы ты её, родную, <br>
Не ждал полдня на берегу, <br>
А ловил её большую, <br>
В море, в речке и в пруду ! <br>
</div> 
  
 </div>

→ Ссылка