>>与软件开发有关的知识:操作系统,数据库,网络通信等 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 21076 个阅读者 刷新本主题
 * 贴子主题:  HTML5+JavaScript实现一个简单的音乐播放器 回复文章 点赞(0)  收藏  
作者:flybird    发表时间:2020-01-13 00:22:17     消息  查看  搜索  好友  邮件  复制  引用

          

网页实现一个简单的音乐播放器

今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。

于是乎用h5 audio的加上js简单的播放器完工了。


演示地点:跳到演示地点

点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小

html代码如下      

`<!DOCTYPE html>
<html>
<head>
<title>music</title>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="music.css">
</head>
<body>
<div id = love>
<audio src="" controls class="music"></audio>
<ul class="mlist">
<li class="">这个年纪</li>
<li>七月的风</li>
<li>音乐</li>
</ul>
</div>
<script type="text/javascript" src="music.js"></script>
</body>
</html>`

然后就是css`    

* {
margin :  0 ;
padding :  0 ;
text -decoration : none ;
list -style : none ;
}
#love {
position : relative ;
height :  250px ;
width :  300px ;
border :  3px solid black ;
border -radius :  10 % ;
background -image :  url (demo .jpg ) ;
background -size : cover ;

}
.play {
color : white ;
background -color : # 87CEFA ;
margin : 0  6px ;
}
#love  .mlist {
margin : 10px ;
background -color :  rgba ( 1 , 1 , 1 , 0.5 ) ;
height :  165px ;
border -radius :  5px ;

}
#love ul li {
line -height : 30px ;
text -align : center ;
cursor :pointer ;
border -radius :  4px ;
}
#love ul li :hover {
line -height : 45px ;
text -align : center ;
cursor :pointer ;
margin : 0  5px ;
background -color : # F0F8FF ;
border -radius : 6px ;
}

`下面就是js了    

  var musicNode  = document . getElementsByClassName ( 'music' ) [ 0 ] ;
var     mlist  = document . getElementsByClassName ( 'mlist' ) [ 0 ] ;
var       lis  = document . getElementsByTagName ( 'li' ) ;
var       len  = lis .length ;
var  musicsrc  = [  ] ; //这个数组用来放歌单的url。详情可以看我的网页demo
   musicNode .src  = musicsrc [ 0 ] ;
  for  ( var i  =  0 ; i  < len ; i ++ )  { //单击改变playmusic
( function (i ) {
lis [i ] . onclick  = function ( ) {        
musicNode .src  = musicsrc [i ] ;
musicNode . load ( ) ;
musicNode . play ( ) ;
for  ( var j =  0 ; j  < len ; j ++ )  {
lis [j ] .className  =  '' ;
}
this .className  =  'play' ;
} } ) (i ) ;
  }
musicNode . onended  = function ( ) { //音乐播放完后自动下一曲
  var ended  =  getPlay ( ) ;
      if  (ended  == len - 1 )  { //若为最后一曲则放第一曲
      musicNode .src  = musicsrc [ 0 ] ;
      lis [ 0 ] .className  =  'play'
       lis [ended ] .className  =  '' ;
      musicNode . load ( ) ;
  musicNode . play ( ) ;
      } else {
      musicNode .src  = musicsrc [ended  +  1 ] ;
      lis [ended  +  1 ] .className  =  'play' ;
      lis [ended ] .className  =  '' ;
      musicNode . load ( ) ;
  musicNode . play ( ) ;  }
    
  }
function  getPlay ( ) { //获取正在播放music的li
      for  ( var i  =  0 ; i  < len ; i ++ )  {
     if  (lis [i ] . getAttribute ( 'class' )  ==  'play' )  {
     return i
     }
       }
}        

                                                                                                             ----------------------------
原文链接:https://blog.csdn.net/qq_44210563/article/details/102826406

程序猿的技术大观园:www.javathinker.net



[这个贴子最后由 sunshine 在 2020-01-13 12:23:24 重新编辑]
  Java面向对象编程-->内部类
  JavaWeb开发-->JSP技术详解(Ⅱ)
  JSP与Hibernate开发-->使用JPA和注解
  Java网络编程-->非阻塞通信
  精通Spring-->组合(Composition)API
  Vue3开发-->Vue指令
  OSI七层模型与层上协议
  关于Mongodb的全面总结
  MySQL不推荐使用uuid或者雪花id作为主键
  MongoDB高手进阶指南
  SQL的SUM() 函数 的用法
  SQL PRIMARY KEY 约束
  SQL SELECT INTO 语句
  MySQL的聚集函数
  Mysql提升效率的神器: 索引
  程序员必须掌握的核心算法有哪些?
  数据库设计(一)——数据库设计-生命不息,奋斗不止
  常见的加密算法及详解都总结在这里!
  Mysql并发保证数据一致性——实例
  分布式架构的那点事
  Java 操作系统篇
  更多...
 IPIP: 已设置保密
楼主      
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。