Playing around with a music player mockup.
This is a work in progress.
<div class="container"> | |
<div class="top"> | |
<div class="menu float-r"> | |
<a href="#"><span></span></a> | |
<a href="#"><span></span></a> | |
<a href="#"><span></span></a> | |
</div> | |
</div> | |
<div class="side-menu"> | |
<a href="#" class="close"><i class="fa fa-angle-left"></i></a> | |
<ul> | |
<li><a href="#" class="side-search"><i class="fa fa-search fa-fw"></i> Search</a></li> | |
<li class="active"><a href="#" class="side-currently-playing"><i class="fa fa-headphones fa-fw"></i> Currently Playing</a></li> | |
<li><a href="#" class="side-popular-music"><i class="fa fa-list-ol fa-fw"></i> Popular Music</a></li> | |
<li><a href="#" class="side-your-playlist"><i class="fa fa-music fa-fw"></i> Your Playlists</a></li> | |
<li><a href="#" class="side-your-profile"><i class="fa fa-user fa-fw"></i> Your Profile</a></li> | |
<li><a href="#" class="side-settings"><i class="fa fa-cog fa-fw"></i> Settings</a></li> | |
</ul> | |
<div class="side-menu-background"></div> | |
</div> | |
<div class="center"> | |
<div class="nav"> | |
<a href="#" class="side-menu-trigger"><i class="fa fa-bars"></i></a> | |
</div> | |
<div class="cover"> | |
<div class="jcarousel"> | |
<ul> | |
<li><img src="https://upload.wikimedia.org/wikipedia/en/6/64/The-Days-Nights-EP-by-Avicii.jpg" alt="" /></li> | |
<li><img src="https://i1.sndcdn.com/artworks-000110285449-17viu6-t500x500.jpg" alt="" /></li> | |
<li><img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/308622/bmth-tts.jpg" alt="" /></li> | |
</ul> | |
</div> | |
<!--<img src="https://upload.wikimedia.org/wikipedia/en/6/64/The-Days-Nights-EP-by-Avicii.jpg" alt="" />--> | |
</div> | |
<ul class="jcarousel-pagination"></ul> | |
<div class="info"> | |
<div class="name"> | |
<h3 class="song">The Nights</h3> | |
<p class="artist">Avicii</p> | |
</div> | |
</div> | |
</div> | |
<div class="bottom"> | |
<div class="action"> | |
<a href="#" class="previous jcarousel-prev"><i class="fa fa-step-backward"></i></a> | |
<a href="#" class="play"><i class="fa fa-play fa-fw"></i></a> | |
<a href="#" class="next jcarousel-next"><i class="fa fa-step-forward"></i></a> | |
</div> | |
<div class="length"> | |
<label for="fader">1:00</label> | |
<input type="range" min="0" max="100" value="40" id="fader" step="1"> | |
<output for="fader" class="duration"></output> | |
</div> | |
<div class="options"> | |
<a href="#" class="shuffle active"><i class="fa fa-random"></i></a> | |
<a href="#" class="replay"><i class="fa fa-refresh"></i></a> | |
<a href="#" class="volume"><i class="fa fa-volume-up"></i></a> | |
<a href="#" class="favorite active"><i class="fa fa-heart"></i></a> | |
</div> | |
<div class="volume-slider"> | |
<a href="#" class="close"><i class="fa fa-chevron-down"></i></a> | |
<div class="volume-slider-inner"> | |
<i class="fa fa-volume-down"></i> | |
<input class="volume-slider" type=range min=0 max=100 value=0 id=fader step=1 oninput="outputUpdate(value)"> | |
<i class="fa fa-volume-up"></i> | |
</div> | |
</div> | |
</div> | |
<div class="overlay-image the-nights active"></div> | |
<div class="overlay-image dont-look-down"></div> | |
<div class="overlay-image avalanche"></div> | |
<div class="overlay"></div> | |
</div> | |
<audio class="audio-avalanche" src="http://emilcarlsson.se/assets/bring-me-the-horizon-avalanche.mp3" type="audio/mpeg"> | |
Your browser does not support the audio tag! | |
</audio> | |
<audio class="audio-dont-look-down" src="http://emilcarlsson.se/assets/Martin Garrix feat. Usher - Don't Look Down (Lyric Video).mp3" type="audio/mpeg"> | |
Your browser does not support the audio tag! | |
</audio> | |
<audio class="audio-the-nights" src="http://emilcarlsson.se/assets/Avicii - The Nights.mp3" type="audio/mpeg"> | |
Your browser does not support the audio tag! | |
</audio> |
$(function() { | |
$('.jcarousel').jcarousel({ | |
wrap: 'circular' | |
}); | |
$('.jcarousel-pagination').jcarouselPagination({ | |
item: function(page) { | |
return '<li id="jcarousel-item' + page + '"><a href="#' + page + '">' + page + '</a></li>'; | |
} | |
}); | |
$('#jcarousel-item1').addClass('active'); | |
$('.jcarousel-pagination') | |
.on('jcarouselpagination:active', 'li', function() { | |
$(this).addClass('active'); | |
}) | |
.on('jcarouselpagination:inactive', 'li', function() { | |
$(this).removeClass('active'); | |
}); | |
}); | |
$('.jcarousel-prev').click(function() { | |
$('.jcarousel').jcarousel('scroll', '-=1'); | |
$(".audio-avalanche")[0].pause(); | |
$(".audio-the-nights")[0].pause(); | |
$(".audio-dont-look-down")[0].pause(); | |
$(".play i").removeClass("fa-pause").addClass("fa-play"); | |
$(".play").removeClass("active") | |
if ($('#jcarousel-item1').hasClass('active')) { | |
$('.dont-look-down, .avalanche').removeClass('active'); | |
$('.the-nights').addClass('active'); | |
$(".song").html("The Nights"); | |
$(".artist").html("Avicii"); | |
$(".duration").html($(".audio-the-nights").duration); | |
}; | |
if ($('#jcarousel-item2').hasClass('active')) { | |
$('.the-nights, .avalanche').removeClass('active'); | |
$('.dont-look-down').addClass('active'); | |
$(".song").text("Don't Look Down"); | |
$(".artist").text("Martin Garrix"); | |
}; | |
if ($('#jcarousel-item3').hasClass('active')) { | |
$('.the-nights, .dont-look-down').removeClass('active'); | |
$('.avalanche').addClass('active'); | |
$(".song").html("Avalanche"); | |
$(".artist").html("Bring Me The Horizon"); | |
}; | |
}); | |
$('.jcarousel-next').click(function() { | |
$('.jcarousel').jcarousel('scroll', '+=1'); | |
$(".audio-avalanche")[0].pause(); | |
$(".audio-the-nights")[0].pause(); | |
$(".audio-dont-look-down")[0].pause(); | |
$(".play i").removeClass("fa-pause").addClass("fa-play"); | |
$(".play").removeClass("active") | |
if ($('#jcarousel-item1').hasClass('active')) { | |
$('.dont-look-down, .avalanche').removeClass('active'); | |
$('.the-nights').addClass('active'); | |
$(".song").html("The Nights"); | |
$(".artist").html("Avicii"); | |
}; | |
if ($('#jcarousel-item2').hasClass('active')) { | |
$('.the-nights, .avalanche').removeClass('active'); | |
$('.dont-look-down').addClass('active'); | |
$(".song").html("Don't Look Down"); | |
$(".artist").html("Martin Garrix"); | |
}; | |
if ($('#jcarousel-item3').hasClass('active')) { | |
$('.the-nights, .dont-look-down').removeClass('active'); | |
$('.avalanche').addClass('active'); | |
$(".song").html("Avalanche"); | |
$(".artist").html("Bring Me The Horizon"); | |
}; | |
}); | |
$(".options a").click(function() { | |
$(this).toggleClass("active"); | |
}); | |
$(".favorite").click(function() { | |
if($(".options .favorite i").hasClass("fa-heart")) { | |
$(".options .favorite i").removeClass("fa-heart").addClass("fa-heart-o"); | |
} | |
else { | |
$(".options .favorite i").removeClass("fa-heart-o").addClass("fa-heart"); | |
} | |
}); | |
$(".play").click(function() { | |
$(".play").toggleClass("active"); | |
if($(".play i").hasClass("fa-play")) { | |
$(".play i").removeClass("fa-play").addClass("fa-pause"); | |
} | |
else { | |
$(".play i").removeClass("fa-pause").addClass("fa-play"); | |
} | |
if($(".play").hasClass("active") && $("#jcarousel-item3").hasClass("active")) { | |
var audio = $(".audio-avalanche")[0]; | |
audio.play(); | |
} else { | |
var audio = $(".audio-avalanche")[0]; | |
audio.pause(); | |
} | |
if($(".play").hasClass("active") && $("#jcarousel-item2").hasClass("active")) { | |
var audio = $(".audio-dont-look-down")[0]; | |
audio.play(); | |
} else { | |
var audio = $(".audio-dont-look-down")[0]; | |
audio.pause(); | |
} | |
if($(".play").hasClass("active") && $("#jcarousel-item1").hasClass("active")) { | |
var audio = $(".audio-the-nights")[0]; | |
audio.play(); | |
} else { | |
var audio = $(".audio-the-nights")[0]; | |
audio.pause(); | |
} | |
}); | |
$(".volume").click(function(){ | |
$(".volume").removeClass("active"); | |
$(".volume-slider").animate({marginTop: '-150px'}, 500); | |
}); | |
$(".volume-slider .close").click(function(){ | |
$(".volume-slider").animate({marginTop: '0px'}, 500); | |
}) | |
$(".side-menu-trigger").click(function(){ | |
$(".side-menu").animate({marginLeft: '0px'}); | |
$(".volume-slider").animate({marginTop: '0px'}, 500); | |
}); | |
$(".side-menu li a, .side-menu .close").click(function(){ | |
$(".side-menu").animate({marginLeft: '-310px'}); | |
}); | |
$('.volume-slider input[type="range"]').on('input', function () { | |
var percent = Math.ceil(((this.value - this.min) / (this.max - this.min)) * 100); | |
console.log(this.min); | |
$(this).css('background', '-webkit-linear-gradient(left, #e74c3c 0%, #e74c3c ' + percent + '%, #999 ' + percent + '%)'); | |
}); | |
$(".volume-slider").slider({ | |
min: 0, | |
max: 100, | |
value: 0, | |
range: "min", | |
animate: true, | |
slide: function(event, ui) { | |
setVolume((ui.value) / 100); | |
} | |
}); | |
function setVolume(myVolume) { | |
var myMedia = document.getElementByClass('audio-avalanche'); | |
myMedia.volume = myVolume; | |
} |
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> | |
<script src="https://cdnjs.cloudflare.com/ajax/libs/jcarousel/0.3.1/jquery.jcarousel.min.js"></script> |
@import url(https://fonts.googleapis.com/css?family=Open+Sans:400,700); | |
*, *:after, *:before { | |
-webkit-box-sizing: border-box; | |
-moz-box-sizing: border-box; | |
box-sizing: border-box; | |
padding: 0; | |
z-index: 2; | |
} | |
body { | |
margin: 20px; | |
height: 100%; | |
font-family: 'Open Sans'; | |
background: #5cffbd; | |
} | |
.float-r { float: right; } | |
.float-l { float: left; } | |
div.container { | |
width: 310px; | |
height: 480px; | |
margin: 5% auto 0; | |
position: relative; | |
background: #333; | |
box-shadow: 0 8px 17px 0 rgba(0,0,0,.2),0 6px 20px 0 rgba(0,0,0,.19); | |
overflow: hidden; | |
} | |
div.top { | |
height: 30px; | |
background: #EAEAEA; | |
padding: 7px; | |
z-index: 9999; | |
} | |
div.menu a { | |
display: inline-block; | |
margin: 2px 2px 2px 2px; | |
height: 12px; | |
width: 12px; | |
border-radius: 12px; | |
} | |
div.menu a:nth-child(1) { background: #2ecc71; } | |
div.menu a:nth-child(2) { background: #f1c40f; } | |
div.menu a:nth-child(3) { background: #e74c3c; } | |
div.side-menu { | |
width: 100%; | |
height: 100%; | |
position: absolute; | |
background: #333; | |
z-index: 98; | |
margin-left: -310px; | |
} | |
div.side-menu-background { | |
width: 100%; | |
height: 100%; | |
top: 0; | |
position: absolute; | |
background: url('http://cdn.postgradproblems.com/wp-content/uploads/2013/08/8c7b216218c104dd0b2cd5a39626351c.jpg') no-repeat 10% 0%; | |
background-size: auto 100%; | |
opacity: .07; | |
z-index: 95; | |
} | |
div.side-menu a.close { | |
position: absolute; | |
right: 20px; | |
top: 18px; | |
font-size: 25px; | |
color: #FFF; | |
z-index: 100; | |
} | |
div.side-menu ul { | |
margin: 25px 0 0 0; | |
z-index: 99 !important; | |
position: relative; | |
} | |
div.side-menu li { | |
color: #AAA; | |
padding: 16px 0 13px 28px; | |
z-index: 99; | |
} | |
div.side-menu li.active { | |
color: #FFF; | |
} | |
div.side-menu li a { | |
color: inherit; | |
text-decoration: none; | |
font-size: 20px; | |
font-weight: 400; | |
z-index: 100; | |
} | |
div.side-menu li a i { | |
margin-right: 7px; | |
} | |
div.overlay-image { | |
position: absolute; | |
width: 100%; | |
height: 100%; | |
opacity: .6; | |
top: 0; | |
z-index: -2 !important; | |
filter: blur(4px); | |
} | |
div.overlay-image.the-nights.active { | |
animation: fadeIn 0.8s; | |
background: url('https://upload.wikimedia.org/wikipedia/en/6/64/The-Days-Nights-EP-by-Avicii.jpg') no-repeat 45% 20%; | |
background-size: 200% auto; | |
} | |
div.overlay-image.dont-look-down.active { | |
animation: fadeIn 0.8s; | |
background: url('https://i1.sndcdn.com/artworks-000110285449-17viu6-t500x500.jpg') no-repeat 45% 20%; | |
background-size: 200% auto; | |
} | |
div.overlay-image.avalanche.active { | |
animation: fadeIn 0.8s; | |
background: url('https://s3-us-west-2.amazonaws.com/s.cdpn.io/308622/bmth-tts.jpg') no-repeat 45% 20%; | |
background-size: 200% auto; | |
} | |
div.overlay { | |
position: absolute; | |
top: 0; | |
z-index: -1 !important; | |
width: 100%; | |
height: 100%; | |
background: -moz-linear-gradient(top,rgba(51,51,51,0.65) 0,rgba(51,51,51,1) 100%); | |
background: -webkit-gradient(linear,left top,left bottom,color-stop(0%,rgba(51,51,51,0.5)),color-stop(100%,rgba(51,51,51,1))); | |
background: -webkit-linear-gradient(top,rgba(51,51,51,0.65) 0,rgba(51,51,51,1) 100%); | |
background: -o-linear-gradient(top,rgba(51,51,51,0.65) 0,rgba(51,51,51,1) 100%); | |
background: -ms-linear-gradient(top,rgba(51,51,51,0.65) 0,rgba(51,51,51,1) 100%); | |
background: linear-gradient(to bottom,rgba(51,51,51,0.65) 0,rgba(51,51,51,1) 100%); | |
} | |
div.nav { | |
width: 270px; | |
margin: 20px auto 0 auto; | |
} | |
div.nav a { | |
color: #FFF; | |
font-size: 24px; | |
} | |
div.cover { | |
width: 100%; | |
margin: 15px auto 20px auto; | |
} | |
div.cover img { | |
height: 180px; | |
width: 180px; | |
box-shadow: 0 3px 15px 0 rgba(0,0,0,.2),0 6px 20px 0 rgba(0,0,0,.19); | |
} | |
.jcarousel { | |
width: 310px; | |
position: relative; | |
overflow: hidden; | |
} | |
.jcarousel ul { | |
width: 20000em; | |
position: relative; | |
list-style: none; | |
margin: 0; | |
padding: 0; | |
} | |
.jcarousel li { | |
float: left; | |
width: 310px; | |
height: 180px; | |
margin-left: 65px; | |
} | |
.jcarousel-pagination { | |
display: none; | |
} | |
div.info { | |
text-align: center; | |
color: #fff; | |
} | |
div.info h3 { | |
font-weight: 600; | |
font-size: 14px; | |
} | |
div.info p { | |
font-size: 12px; | |
color: #999; | |
margin: 7px 0; | |
} | |
div.action { | |
text-align: center; | |
margin: 20px 0; | |
} | |
div.action .previous, div.action .next { | |
font-size: 26px; | |
margin: 0 10px; | |
color: #FFF; | |
} | |
div.action .play { | |
font-size: 40px; | |
margin: 0 25px; | |
color: #FFF; | |
} | |
div.options { | |
text-align: center; | |
margin: 25px 0 35px 0; | |
display: block; | |
} | |
div.options a { | |
color: #999; | |
margin: 0 15px; | |
} | |
div.options a.active { | |
color: #e74c3c; | |
} | |
div.volume-slider { | |
text-align: center; | |
margin-top: 0px; | |
display: block; | |
height: 140px; | |
background: #303030; | |
position: absolute; | |
z-index: 97; | |
width: 100%; | |
} | |
div.volume-slider-inner { | |
padding: 60px 0 0 0; | |
} | |
div.volume-slider div.volume-slider-inner i { | |
color: #666; | |
padding: 0 6px; | |
} | |
div.length input[type=range]::-webkit-slider-thumb { | |
-webkit-appearance: none; | |
height: 8px; | |
width: 8px; | |
border-radius: 10px; | |
background: #ffffff; | |
cursor: pointer; | |
} | |
div.volume-slider input[type='range'] { | |
height: 2px; | |
width: 180px; | |
background: #999; | |
-webkit-appearance: none; | |
border: none; | |
outline: 0; | |
} | |
div.volume-slider input[type=range]::-webkit-slider-thumb { | |
-webkit-appearance: none; | |
height: 15px; | |
width: 15px; | |
border-radius: 30px; | |
background: #ffffff; | |
cursor: pointer; | |
} | |
div.volume-slider a.close { | |
position: absolute; | |
color: #DDD; | |
right: 14px; | |
top: 10px; | |
font-size: 18px; | |
} | |
div.length { | |
width: 280px; | |
margin: 20px auto; | |
color: #999; | |
font-size: 10px; | |
} | |
div.length label, div.length output { | |
position: absolute; | |
margin-top: -5px; | |
} | |
div.length output { | |
margin-left: -26px; | |
} | |
div.length label { | |
margin-left: 15px; | |
} | |
div.length input[type="range"] { | |
width: 250px; | |
margin-left: 14px; | |
-webkit-appearance: none; | |
background-color: #999; | |
height:2px; | |
border: none; | |
outline: 0; | |
} | |
::-moz-selection { /* Code for Firefox */ | |
color: rgba(255, 255, 255, 1); | |
background: rgba(255, 255, 255, .0); | |
} | |
::selection { | |
color: rgba(255, 255, 255, 1); | |
background: rgba(255, 255, 255, .0); | |
} | |
@keyframes fadeIn { | |
0% { | |
opacity: 0; | |
} | |
50% { | |
opacity: 0.6; | |
} | |
} |
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet" /> | |
<link href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.2.0/animate.min.css" rel="stylesheet" /> |