JSFiddle - React, Tailwind, and code Playground
HTML
<!DOCTYPE html>
<html>
<head>
<title>Title</title>
<meta name="viewport" content="user-scalable=no, width=device-width">
<script>
function audioClick(evt, listElementId, clip){
var listElement = document.getElementById(listElementId);
var front = listElement.getElementsByClassName("front")[0];
var back = listElement.getElementsByClassName("back")[0];
var audio = listElement.getElementsByTagName("audio")[0];
var audioControls = listElement.getElementsByClassName("audio_controls")[0];
console.log(audioControls.style.display);
if (back.dataset.displayed == "no"){
// controls are not displayed, display them and play the audio
// audio.src = clip;
// audio.play();
audioControls.style.display = "block";
front.style.webkitTransform = "rotateX(-180deg)";
back.style.webkitTransform = "rotateX(0deg)";
back.dataset.displayed = "yes";
}else {
// controls are currently displayed, stop the audio and hide the controls
back.style.webkitTransform = "rotateX(-180deg)";
front.style.webkitTransform = "rotateX(0deg)";
back.dataset.displayed = "no";
setTimeout(function(){ audioControls.style.display = "none";}, 300);
// audio.pause();
}
}
</script>
</head>
<body>
<ul id="list">
<li id="li1" onclick="audioClick(event, 'li1', 'Jimmy_Cliff_Rebirth.mp3');">
<div class="card-container">
<div class="card">
<div class="front">
<img class="track_image" src="Jimmy_Cliff_Rebirth.jpg">
<div class="track_title">Audio file is local</div>
<div class="artist_name">Professor...
CSS
body {
font-family: Helvetica,sans-serif;
margin: 0;
padding: 0;
}
ul {
list-style: none;
margin: 0px;
padding: 0px;
}
li {
position: relative;
display: block;
height: 80px;
}
.card {
-webkit-transform-style: preserve-3d;
width: 320px;
height: 80px;
position: relative;
}
.back, .front {
position: absolute;
-webkit-backface-visibility: hidden;
-webkit-transition: -webkit-transform 0.4s ease;
/* force hardware acceleration */
-webkit-transform: translateZ(0);
width: 100%;
height: 100%;
}
.back {
-webkit-transform: rotateX(180deg);
}
.track_image {
position: absolute;
top: 7px;
left: 8px;
width: 64px;
height: 64px;
-webkit-box-shadow: 7px 7px 8px #818181;
}
.track_title {
position:absolute;
padding:0;
margin:0;
top: 7px;
left: 88px;
width: 175px;
font-size: 15px;
font-weight: bold;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
text-shadow: 1px 1px 1px #f5f5f5;
}
.artist_name {
position: absolute;
left: 88px;
top: 33px;
width: 175px;
font-size: 14px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
text-shadow: 1px 1px 1px #f5f5f5;
}
.release_date {
position: absolute;
left: 88px;
top: 58px;
font-size: 12px;
font-weight: normal;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
text-shadow: 1px 1px 1px #f5f5f5;
}
.visit_website {
position: absolute;
left: 263px;
top: 15px;
height:50px;
width: 50px;
}
.audio_controls {
position:absolute;
top: 33px;
left:81px;
height: 20px;
width: 200px;
opacity:0.7;
display:none;
}