>>与软件开发有关的知识:操作系统,数据库,网络通信等 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 27495 个阅读者 刷新本主题
 * 贴子主题:  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开发-->映射对象标识符
  Java网络编程-->Socket用法详解
  精通Spring-->CSS过渡和动画
  Vue3开发-->组合(Composition)API
  MongoDB高手进阶指南
  MySQL 管理
  SQL MS Access、MySQL 和 SQL Server 数据类型
  SQL 通用数据类型汇总
  SQL ALTER TABLE 语句
  SQL UNIQUE 约束
  SQL NOT NULL 约束
  MySQL:如何用 SELECT 语句的 WHERE 子句过滤返回的数据
  网络运维 - 你与真相就差一层窗户纸
  MySQL的启动选项和系统变量该如何配置?
  电脑启动不起来,提示Reboot and select proper boot device ...
  linux系列之常用运维命令整理
  TCP三次握手和四次挥手以及11种状态
  Mysql并发保证数据一致性——实例
  消息队列、消息代理和消息中间件的区别和联系
  更多...
 IPIP: 已设置保密
楼主      
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


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