Chinaunix首页 | 论坛 | 博客
  • 博客访问: 44886
  • 博文数量: 34
  • 博客积分: 831
  • 博客等级: 军士长
  • 技术积分: 310
  • 用 户 组: 普通用户
  • 注册时间: 2012-10-08 11:15
文章分类

全部博文(34)

文章存档

2012年(34)

我的朋友

分类: 系统运维

2012-11-23 18:00:58

音乐歌词

开始学习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. }
  10. control.onclick = function (){
  11. if(video.paused){
  12. video.play();
  13. control.style.backgroundImage='url(btn1.png)';
  14. }
  15. else{
  16. video.pause();
  17. control.style.backgroundImage='url(btn2.png)';
  18. }
  19. }
  20. var num=0;
  21. var top1=30;
  22. video.addEventListener('timeupdate',function (){
  23. var t=video.currentTime/video.duration ;
  24. scroll.style.height=t*300+'px';
  25. if(t*300>=60){control.style.opacity='0.2';}
  26. if(t*video.duration>=time[num]&&t*video.duration<=time[num+1]){
  27. top1-=30;
  28. num++;
  29. lrc.style.top=top1+'px';
  30. }
  31. else if(t*video.duration>=time[num+1]){top1-=30;num++;console.log(num);}
  32. else if(t*video.duration<time[num]){top1+=30;num--;}
  33. },false)

阅读(454) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~