>>与软件开发有关的知识:操作系统,数据库,网络通信等 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 20870 个阅读者 刷新本主题
 * 贴子主题:  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中使用JavaBean(Ⅰ)
  JSP与Hibernate开发-->Spring、JPA与Hibernate的整合
  Java网络编程-->客户端协议处理框架
  精通Spring-->Vue CLI脚手架工具
  Vue3开发-->Vue指令
  Https的1.0、2.0协议及长短链接区别
  关于Mongodb的全面总结
  Zabbix中文使用手册
  SaltStack 自动化运维实战
  Mysql启报错报的解决办法:The server quit without updatin...
  没有宫廷内斗,数据库界的延禧攻略
  mysql启动报错的解决:Starting MySQL... ERROR! The server...
  作为一个程序员,CPU的这些硬核知识你必须会!
  MySQL的所有函数的用法
  MySQL 删除数据库
  Linux 云服务器
  Service Mesh 落地负责人亲述:蚂蚁金服双十一四大考题
  管理密码策略
  MySQL的开发必会的SQL语句
  为什么要分库分表?用过哪些分库分表中间件?
  更多...
 IPIP: 已设置保密
楼主      
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


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