>>与软件开发有关的知识:操作系统,数据库,网络通信等 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 29802 个阅读者 刷新本主题
 * 贴子主题:  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面向对象编程-->第一个Java程序
  JavaWeb开发-->使用Session(Ⅱ)
  JSP与Hibernate开发-->数据库事务的并发问题的解决方案
  Java网络编程-->客户端协议处理框架
  精通Spring-->Vue简介
  Vue3开发-->Vue组件开发高级技术
  Https的1.0、2.0协议及长短链接区别
  Mysql启报错报的解决办法:The server quit without updatin...
  centos7.4安装配置使用简介Kubernetes (k8s)
  PostgreSQL VFD机制
  MySQL——mmm(Master-Master replication managerfor Mysql)...
  从MySQL数据库中导出数据
  SQL ROUND() 函数
  SQL AVG() 函数的用法
  SQL的创建索引( CREATE INDEX) 语句的用法
  Windows 和 Mac的键盘快捷键汇总
  MySQL的聚集函数
  管理密码策略
  连接数据库发现大量的TIME_WAIT解决办法
  程序员必须掌握的核心算法有哪些?
  MySQL核心技术点——史上最全的select加锁分析
  更多...
 IPIP: 已设置保密
楼主      
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


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