Audio player - работает только 1 трек
Всем привет.
Я искал аудио плеер для сайта и наткнулся на вот такой вот плеер: http://jsfiddle.net/kmodfc8w/59/ распишу его код тут ниже: <style> #player{ position:relative; margin:50px auto; width:300px; text-align:center; font-family:Helvetica, Arial; } #playpause{ border:1px solid #eee; cursor:pointer; padding:12px 0; color:#888; font-size:12px; border-radius:3px; } #playpause:hover{ border-color: #ccc; } #volume, #progressbar{ border:none; height:2px; } #volume{ background:hsla(180,75%,50%,1); } #progressbar{ background:#ccc; } .ui-slider-handle{ border-radius:50%; top: -5px !important; width: 11px !important; height: 11px !important; margin-left:-5px !important; } </style> <div id="player"> <audio id="audio" src="http://upload.wikimedia.org/wikipedia/en/4/45/ACDC_-_Back_In_Black-sample.ogg" > </audio> <div id="volume"></div><br> <div id="progressbar"></div><br> <div id="playpause"></div> </div> $(function() { var $aud = $("#audio"), $pp = $('#playpause'), $vol = $('#volume'), $bar = $("#progressbar"), AUDIO= $aud[0]; AUDIO.volume = 0.75; AUDIO.addEventListener("timeupdate", progress, false); function getTime(t) { var m=~~(t/60), s=~~(t % 60); return (m<10?"0"+m:m)+':'+(s<10?"0"+s:s); } function progress() { $bar.slider('value', ~~(100/AUDIO.duration*AUDIO.currentTime)); $pp.text(getTime(AUDIO.currentTime)); } $vol.slider( { value : AUDIO.volume*100, slide : function(ev, ui) { $vol.css({background:"hsla(180,"+ui.value+"%,50%,1)"}); AUDIO.volume = ui.value/100; } }); $bar.slider( { value : AUDIO.currentTime, slide : function(ev, ui) { AUDIO.currentTime = AUDIO.duration/100*ui.value; } }); $pp.click(function() { return AUDIO[AUDIO.paused?'play':'pause'](); }); }); Дело в том что если добавить в данный аудио плеер 2 div#player то второй не будет стилизоваться и им нельзя управлять.. не понимаю как решить, можете помочь? <div id="player"> <!-- будет отображать время песни и управление --> <audio id="audio" src="http://upload.wikimedia.org/wikipedia/en/4/45/ACDC_-_Back_In_Black-sample.ogg" > </audio> <div id="volume"></div><br> <div id="progressbar"></div><br> <div id="playpause"></div> </div> <div id="player"> <!-- Не будет отображать время песни и управление --> <audio id="audio" src="http://upload.wikimedia.org/wikipedia/en/4/45/ACDC_-_Back_In_Black-sample.ogg" > </audio> <div id="volume"></div><br> <div id="progressbar"></div><br> <div id="playpause"></div> </div> |
Nyiann,
id уникально :( |
Nyiann, классы вместо id
<!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> </style> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css"> <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script> <script> $(function() { $(".player").each(function(indx, pl){ var $aud = $(".audio", pl), $pp = $('.playpause', pl), $vol = $('.volume', pl), $bar = $(".progressbar", pl), AUDIO= $aud[0]; AUDIO.volume = 0.75; AUDIO.addEventListener("timeupdate", progress, false); function getTime(t) { var m=~~(t/60), s=~~(t % 60); return (m<10?"0"+m:m)+':'+(s<10?"0"+s:s); } function progress() { $bar.slider('value', ~~(100/AUDIO.duration*AUDIO.currentTime)); $pp.text(getTime(AUDIO.currentTime)); } $vol.slider( { value : AUDIO.volume*100, slide : function(ev, ui) { $vol.css({background:"hsla(180,"+ui.value+"%,50%,1)"}); AUDIO.volume = ui.value/100; } }); $bar.slider( { value : AUDIO.currentTime, slide : function(ev, ui) { AUDIO.currentTime = AUDIO.duration/100*ui.value; } }); $pp.click(function() { return AUDIO[AUDIO.paused?'play':'pause'](); }); }); }); </script> </head> <body> <style> .player{ position:relative; margin:50px auto; width:300px; text-align:center; font-family:Helvetica, Arial; } .playpause{ border:1px solid #eee; cursor:pointer; padding:12px 0; color:.888; font-size:12px; border-radius:3px; } .playpause:hover{ border-color: #ccc; } .volume, .progressbar{ border:none; height:2px; } .volume{ background:hsla(180,75%,50%,1); } .progressbar{ background:#ccc; } .ui-slider-handle{ border-radius:50%; top: -5px !important; width: 11px !important; height: 11px !important; margin-left:-5px !important; } </style> <div class="player"> <audio class="audio" src="http://upload.wikimedia.org/wikipedia/en/4/45/ACDC_-_Back_In_Black-sample.ogg" > </audio> <div class="volume"></div><br> <div class="progressbar"></div><br> <div class="playpause"></div> </div> <div class="player"> <audio class="audio" src="http://upload.wikimedia.org/wikipedia/en/4/45/ACDC_-_Back_In_Black-sample.ogg" > </audio> <div class="volume"></div><br> <div class="progressbar"></div><br> <div class="playpause"></div> </div> </body> </html> |
рони,
Спасибо) |
Часовой пояс GMT +3, время: 21:40. |