开始学习HTML5css3了,刚学了audiovideo标签就做了一个简单的同步歌词的播放器,很简单,没什么技术含量……嘿嘿!

原理很简单就是通过给audio添加一个timeupdate事件,每当播放时间改变的时候就获取当前播放时间来改变歌词top值,使歌词上移。

核心JS代码如下:

 

 
  1. var video = document.querySelector('audio'); 
  2. var control = document.querySelector('.scroll p'); 
  3. var scroll = document.querySelector('.scroll span'); 
  4. var lrc = document.querySelector('.lrc ul') 
  5. var times = document.getElementsByClassName('time'); 
  6. var time = []; 
  7. for(var i=0;i<times.length;i++){ 
  8. time[i]=times[i].innerText; 
  9. control.onclick = function (){ 
  10. if(video.paused){ 
  11. video.play(); 
  12. control.style.backgroundImage='url(btn1.png)'
  13. else{ 
  14. video.pause(); 
  15. control.style.backgroundImage='url(btn2.png)'
  16. var num=0
  17. var top1=30
  18. video.addEventListener('timeupdate',function (){ 
  19. var t=video.currentTime/video.duration ; 
  20. scroll.style.height=t*300+'px'; 
  21. if(t*300>=60){
    control.style.opacity='0.2';} 
  22. if(t*video.duration>=time[num]&&t*video.duration<=time[num+1]){ 
  23. top1-=30
  24. num++; 
  25. lrc.style.top=top1+'px'; 
  26. else if(t*video.duration>=time[num+1]){
    top1-=30;num++;console.log(num);} 
  27. else if(t*video.duration<time[num]){top1+=30;num--;} 
  28. },false)