I would like to combine Hover/OnMouseover with OnClick. But only when the audio is playing:
I hope I was detailed enough in here about what I’m trying to do. If you have any questions please ask.
Below is what I’m trying to achieve
initial SVG/Hover Disabled

audio is playing/Hover Allowed
After you click on it, instead of the audio symbol appearing, I want the pause/hover to appear first.

So, when you hover, the pause/hover sign would show, and then when you pull your mouse away, the audio SVG will show:

audio is off/Hover Disabled

New Hover Class
<svg class="hover" width="90" height="108" style="background-color:; "viewbox="-13 -10 85 120">
<path fill="currentColor" style="stroke: #e77d19; stroke-width:3px;color:transparent; " d="M0 8c0-5 3-8 8-8s9 3 9 8v84c0 5-4 8-9 8s-8-3-8-8V8zm43 0c0-5 3-8 8-8s8 3 8 8v84c0 5-3 8-8 8s-8-3-8-8V8z"></path>
</svg>
Working Code:
<button id="playButton2" style="display:block; width: 266px; height: 266px; cursor: pointer;background-color: #000000 ;background-image: linear-gradient( to right,transparent 83px,#0059dd 83px, #0059dd 86px, transparent 86px, transparent 174px, #0059dd 174px, #0059dd 177px, transparent 177px ); border: 3px solid #0059dd;"
onclick="
var button = document.getElementById('playButton2');
var player = document.getElementById('player2');
document.querySelector('#playButton2 .initial').style.display='none';
document.querySelector('#playButton2 .pause').style.display='none';
document.querySelector('#playButton2 .play').style.display='none';
player.volume=1.0; if (player.paused) {
playButton2.style.border='3px solid #e77d19';
playButton2.style.background = 'linear-gradient( to right,transparent 83px,#e77d19 83px, #e77d19 86px, transparent 86px, transparent 174px, #e77d19 174px, #e77d19 177px, transparent 177px ), url(\'http://via.placeholder.com/260x260\')';
playButton2.style.backgroundColor = 'transparent';
playButton2.style.backgroundRepeat = 'no-repeat';
playButton2.style.backgroundPosition = 'center';
document.querySelector('#playButton2 .pause').style.display='inline-block';
player.play();
} else {
playButton2.style.border='3px solid #e77d19';
playButton2.style.background = 'linear-gradient( to right,transparent 83px,#e77d19 83px, #e77d19 86px, transparent 86px, transparent 174px, #e77d19 174px, #e77d19 177px, transparent 177px ), url(\'http://via.placeholder.com/260x260\')';
playButton2.style.backgroundColor = 'transparent';
playButton2.style.backgroundRepeat = 'no-repeat';
playButton2.style.backgroundPosition = 'center';
document.querySelector('#playButton2 .play').style.display='inline-block';
player.pause();
}">
<svg class="play" style="display: none;" width="90" height="108" viewbox="0 -10 85 120">
<path fill="currentColor" style="stroke: #e77d19; stroke-width:3px;color:transparent; " d="M81 44.6c5 3 5 7.8 0 10.8L9 98.7c-5 3-9 .7-9-5V6.3c0-5.7 4-8 9-5l72 43.3z"></path>
</svg>
<svg class="pause" style="display: none;" width="60" height="72" viewbox="0 0 16 14">
<path d="M12.945.38l-.652.762c1.577 1.462 2.57 3.544 2.57 5.858 0 2.314-.994 4.396-2.57 5.858l.65.763c1.79-1.644 2.92-3.997 2.92-6.62S14.735 2.024 12.945.38zm-2.272 2.66l-.65.762c.826.815 1.34 1.947 1.34 3.198 0 1.25-.515 2.382-1.342 3.2l.652.762c1.04-1 1.69-2.404 1.69-3.96 0-1.558-.65-2.963-1.69-3.963zM0 4v6h2.804L8 13V1L2.804 4H0zm7-1.268v8.536L3.072 9H1V5h2.072L7 2.732z"
fill="#1ed760 " fill-rule="evenodd"></path>
</svg>
<svg class="initial" width="90" height="108" viewbox="0 -10 85 120">
<path fill="currentColor" style="stroke: #e77d19; stroke-width:3px;color:black; " d="M81 44.6c5 3 5 7.8 0 10.8L9 98.7c-5 3-9 .7-9-5V6.3c0-5.7 4-8 9-5l72 43.3z"></path>
</svg>
</button>
<audio id="player2" style="display:none;">
<source src='http://hi5.1980s.fm/;' type='audio/mpeg'></source>
</audio>
I was told to use addEventListener but I’m not familiar with how it works. This is a new type of code for me.
I messed it all up In here:
https://jsfiddle.net/dmc84scn/1/
I was given these instructions, but I don’t understand any of it, that’s why I’m asking for help with it. Can someone help me set it up the proper way.
Instructions
You can add event listeners for mounseenter and mouseleave events like:
document.getElementsByClassName('pause')[0].style.display = 'none';
button.addEventListener('mouseleave', function() { document.getElementsByClassName('pause')[0].style.display = 'none'; });
button.addEventListener('mouseenter', function() { document.getElementsByClassName('pause')[0].style.display = 'inline-block';});
addEventListener('mouseleave', function() {}); will fire function() {} whenever a mouse enters the element you called it on. For this example it’s button or better to say, it will call the function() {} whenever you ‘hover’ over the button element.
addEventListener('mouseleave', function() {}); will fire function() {} whenever a mouse leaves the button element.
document.getElementsByClassName('pause')[0].style.display = 'inline-block'; will display the element with class pause if you want to use ID instead of CLASS you can use function getElementById('id') in the same way
document.getElementsByClassName('pause')[0].style.display = 'none'; will hide the element with class pause
If you add this code to your fiddle after line 34: document.querySelector('#playButton2 .play').style.display='none'; you will see the effects, the rest is up to you to change the icons.

