运用js教你轻松制作html音乐播放器_javascript技巧

用HTML做了个音乐播放器,可以循环播放,选择歌曲,以及自动播放下一首,运用了js和json知识,下面是效果图和源码,有兴趣的可以试试哦

效果图:

源码:html

<span style="color:#999999;"><!DOCTYPE html>
<html> 

 <head>
 <meta charset="utf-8" />
 <title>音乐播放器</title>
 <script type="text/javascript" src="js/jquery-2.1.1.min.js" ></script>
 <script src="js/music.js" type="text/javascript" charset="utf-8"></script>
 <style>
  * {
  margin: 0 auto;
  padding: 0;
  } 

  .page {
  position: absolute;
  width: 100%;
  height: 100%;
  } 

  .header {
  width: 100%;
  height: 44px;
  background: lightcoral;
  position: relative;
  } 

  .title {
  font-size: 20px;
  color: white;
  float: left;
  margin: 7px 10px;
  } 

  .search {
  float: right;
  width: 30px;
  margin: 7px 10px;
  } 

  .earch {
  float: right;
  width: 30px;
  margin: 7px 10px;
  }
  .musicBox{
  width: 100%;
  position: absolute;
  top: 44px;
  bottom: 50px;
  background:url(音乐播放器资源/img/bg.jpg);
  background-size:100% 100%;
  /*内容超出范围部分滚动*/
  overflow: scroll; 

  }
  /*定义一条音乐的列表,每行的样式 在js中动态加载到音乐列表每一行的div上*/
  .music{
  width: 100%;
  height: 60px;
  border-bottom: 2px solid gray;
  margin: 10px 20px;
   position: relative;
  }
  .music img{
  width: 40px;
  height: 40px;
  margin: 10px 20px; 

  }
  .music p{
  color: goldenrod;
  position: absolute;
  left: 85px;
  top: 10px; 

  }
  /*音乐播放时所对应的行的样式*/
  .musicPlay{
  background: rgba(120,10,60,0.4); 

  }
  .musicPlay p{
  color: red;
  }
  /*设置footer 的样式*/
  .footer{
  width: 100%;
  height: 50px;
  position: absolute;
  bottom: 0px;
  background: lightcoral;
  }
  .range{
  width: 100%;
  position: absolute;
  top: -3px;
  left: 0px; 

  }
  .pic{
  width: 30px;
  height: 30px;
  position: absolute;
  left: 10px;
  top: 12px;
  border-radius: 15px;
  animation: picAn 2s infinite linear; 

  }
  @keyframes picAn{
  from{}
  to{transform: rotate(360deg);}
  }
  /*控制按钮的样式*/
  .play{
  width: 20px;
  height: 20px;
  position: absolute;
  left: 45%;
  top: 10px;
  }
  .pre{
  width: 30px;
  height: 30px;
  position: absolute;
  left: 0px;
  top: 5px; 

  }
  .next{
  width: 30px;
  height: 30px;
  position: absolute;
  right: 0px;
  top: 5px;
  }
  .love{
  position: absolute;
  right: 5px;
  top: 15px;
  width: 20px;
  height: 30px; 

  }
  .musicControls{
  position: absolute;
  width: 50%;
  left: 25%;
  top: 10px;
  }
 </style>
 </head> 

 <body>
 <div class="page">
  <audio id="audio"></audio>
  <div class="header">
  <h3 class="title">我的音乐</h3>
  <img class="search" src="音乐播放器资源/img/search.png" />
  <img class="earch" src="音乐播放器资源/img/earch.png" />
  </div>
  <!--显示音乐类表-->
  <div class="musicBox">
  <!--内容要通过读取json文件来获得 音乐列表--> 

  </div>
  <!--控制台-->
  <div class="footer">
  <!--进度条-->
  <input type="range" class=" range" />
  <img src="音乐播放器资源/img/deng.jpg" class="pic" />
  <!--控制按钮-->
  <div class="musicControls">
   <img src="音乐播放器资源/img/pre.png" class="pre" />
   <img src="音乐播放器资源/img/play.png" class="play" />
   <img src="音乐播放器资源/img/next.png" class="next" />
  </div>
  <img src="音乐播放器资源/img/shoucang.png" class="love" />
  </div>
 </div> 

 </body> 

</html></span>

 

下面是js代码:

 $(document).ready(function(){
 //音乐播放器需要,播放器对象player,音乐对象,用play去播放music对象
// 创建music对象,用于保存音乐的属性
 function Music(){ 

 }
 Music.prototype.src= "";
 Music.prototype.img ="";
 Music.prototype.num="";
 Music.prototype.musicName="";
 Music.prototype.name="";
 //创建player对象
 function Player(){ 

 }
 Player.prototype.audio = document.getElementById("audio");
// 目前播放第几首歌
 Player.prototype.playIndex=0;
 Player.prototype.isplay = false;
// 定义播放器的方法
 Player.prototype.rangUpdate = function(){
  //this.audio.ontimeupdate =function() 音乐播放器播放音乐时监听
  //把进度条和音乐的时间长度结合起来
  //音乐每播放一秒进读条就会前进一个单位 this.duration音乐的总长度
  this.audio.ontimeupdate =function(){
   //把进度条的总长度设为音乐的总长度
  $(".range").attr("max",this.duration); 

  //设置进度条的值为播放的时间
  $(".range").val(this.currentTime);
  //当一首歌播放完再去播放下一首
  if (this .currentTime == this.duration ) {
  player.nextMusic();
  } 

  } 

 };
 Player.prototype.playMusic =function(){
  //向播放器添加音乐路径
  $(this.audio).attr("src",musicModels[this .playIndex].src);
  this .audio.play();
  //换音乐图片
  $(".pic").attr("src",musicModels[this.playIndex].img);
  //波让其的状态
  this .isplay= true; 

 };
 Player.prototype.nextMusic = function(){ 

  //越界问题
  if (this .playIndex >= musicModels.length - 1) {
  this.playIndex = 0; 

  }else{
  this.playIndex = this .playIndex + 1;
  }
  //改变音乐类表的对应项的样式 

  this.playMusic();
  $(".music").eq(this.playIndex).addClass("musicPlay")
  .siblings()
  .removeClass("musicPlay"); 

 };
 Player.prototype.preMusic =function(){
  if (this .playIndex <= 0) {
  this.playIndex = musicModels.length-1; 

  }else{
  this.playIndex = this .playIndex - 1;
  }
  //改变音乐类表的对应项的样式 

  this.playMusic();
  $(".music").eq(this.playIndex).addClass("musicPlay")
  .siblings()
  .removeClass("musicPlay");
 };
 Player.prototype.playOrPause = function(){
  if(this.isplay){
  this.audio.pause();
  $(".play").attr("src","音乐播放器资源/img/stop.png");
  }else{
  this.audio.play();
  $(".play").attr("src","音乐播放器资源/img/play.png");
  }
  this.isplay = !this.isplay;
 };
// js文件从此向下
// 创建音乐数组
 var musicModels = [];
 //创建音乐播放器对象
 var player= new Player();
 /*Ajax 目的是在js中实现异步操作
  * JS是单线程 的,在单线程中模拟java oc 多线程 开辟异步任务,,浏览器的引擎去做一步操作,
  * 实质上不是开辟一个子线程,而是创建一个异步任务
  * 优点:
  * 1.不需要用户等待服务器相应
  * 在异步派发xmlHTTPRequest 请求后,马上把控制权收回就被返回浏览器空页面
  * 界面不会出现白板,等待后台服务器得到请求后,再去执行完成方法,在方法中填写界面数据的代码
  * 2.不需要加载整个页面只需要更新局部数据,节省流量,减轻服务器压力
  *
  * 为xmlHTTPRequest 设置一个回调函数,服务器数据到达时触发函数,发送请求时可以带少量的参数
  * 实现按需去数据
  *
  $.ajax(),这是jQuery 对ajax的封装的最基础的函数,通过这个函数可以实现异步通讯功能
  var configObj= {
//  method:数据提交方式 get OR post
  URL:请求的网址
  async:是否异步,默认true
  data:post请求的参数
  dataType :服务器返回的类型,xml string json
  success:请求成功后的回调方法
  error :请求失败后的方法 

  }
  $.ajax(configObj);完成异步请求
  二、$post()只能采取post请求
  三、$get()
  四、$getJSON( url ,完成回调);可以请求本地路径的内容
  *
  *
  * */
 $.getJSON("pbl.json",function(data){
//  console.log(data);
  for (var i=0;i<data.length;i++) {
  var music = new Music();
  music.src= "音乐播放器资源/" + data[i].src;
  music.img= "音乐播放器资源/" + data[i].img;
  music.musicName = data[i].musicName;
  music.name = data[i].name;
  music.num = data[i].num;
  musicModels.push(music); 

  }
  //播放音乐
  isertData();
  player.playMusic();
  player.rangUpdate();
  $(".music").eq(player.playIndex).addClass("musicPlay")
  .siblings()
  .removeClass("musicPlay");
 });
 function isertData(){
  //先要遍历数据源数组
  /*
  html5 中添加了一个data-*的方式 来自定义属性
  用data-前缀,添加到自定义属性名上,
  这样的结构可以存储少量的数据
  * */
  for (var i=0;i<musicModels.length;i++) {
//  /创建一个DIV元素表示,音乐中的一行,给这个div添加music样式
//和绑定自定义属性index来记录这个div是列表中的第几行
  var $musicDiv = $("<div class = 'music' data-index = "+ i +"></div>");
//  将这个div添加到musicBox 中
  $(".musicBox").append($musicDiv);
//  设计musicdiv中的子元素,子元素有两个,一个是歌曲的图片,歌曲的信息
//  创建一个img 显示歌曲图片
  var $img = (
  "<img src =" + musicModels[i].img+" />");
  $musicDiv.append($img);
//  创建一个音乐信息的p标签
  var $musicMsg = $("<p>"+musicModels[i].musicName+" 演唱者:"
  +musicModels[i].name
   +"</p>"
  );
  $musicDiv.append($musicMsg); 

  }
  $(".music").click(
  function(e){
   //从被选中的div中读取自定义 index属性 

   player.playIndex = $(this ).data("index");
   player.playMusic();
   //被选中的div设置musicplay样式,该div的兄弟元素要溢出musicplay样式
   //保证只有一个div有musicplay
   $(this).addClass("musicPlay").siblings().removeClass("musicPlay"); 

  }
  );
 } 

  $(".play").click(function(){
  player.playOrPause();
  }); 

  $(".next").click(function(){
  player.nextMusic(); 

  });
  $(".pre").click(function(){
  player.preMusic(); 

  }); 

 })

 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索js
, html
音乐播放器
javascript音乐播放器、javascript运用、轻松筹首页推荐技巧、轻松做仰卧起坐的技巧、轻松搞笑的聊天技巧,以便于您获取更多的相关知识。

时间: 2024-09-30 20:59:17

运用js教你轻松制作html音乐播放器_javascript技巧的相关文章

教你轻松制作Android音乐播放器

欣赏一下我们清爽的界面吧~ 如果是只用activity来制作这样的东西简直是太小儿科了,此处我们当然用的是service 首先我们先上service的代码: 1.如果我们要访问service的属性和方法,那么在activity肯定是以bindservice的方法实现的,而在service中的onbind方法也是必须要实现的,onbind返回的Ibinder对象在activity的serviceconnection中得到使用. 2.activity获取到Ibinder对象,可以进一步获取服务对象和

教你轻松制作java音乐播放器_java

一.音乐播放器的实现原理  Javase的多媒体功能很弱,所以有一个专门处理多媒体的插件叫JMF,JMF提供的模型可大致分为七类 * 数据源(Data source) * 截取设备(Capture Device,包括视频和音频截取设备) * 播放器(Player) * 处理器(Processor) * 数据池(DataSink) * 数据格式(Format) * 管理器(Manager) 而我所做的这个音乐播放器MyMusicPlayer(这是我创建的类名)正是调用了JMF中的Player类来实

利用flash快速制作mp3音乐播放器

    制作说明:     一.准备工作         1.选择背景         背景可以是图片(JPG格式),使用的是可公开链接的图片网址.如果使用新浪相册的图片网址请务必阅读(四).         背景还可以是FLASH动画(SWF格式),使用的是SWF网址.            下面介绍几个可取得SWF网址的网页            花草素材120款     FLASH素材-四千余款     FLASH素材-英雄素材三千款            FLASH素材-透明边框300 

Photoshop制作简单音乐播放器

教程的效果图制作的非常小巧,很适合用到一些可以播放音乐的网页中.制作方法也比较简单,播放器的每一个部件基本上都是用图层样式来表现立体及浮雕效果,只要注意好图形的层次关系,我们就可以分层来完成效果图. 最终效果 1.第一步是我们创建一个黑色径向渐变的背景.在任何颜色的油漆层,添加一个如下所示的渐变图层样式. 2.用圆角矩形工具(设置一个半径为20像素)创建一个该设备的主要元素,表现设备的形状图层(点击菜单上的第一选择).分类: PS图片处理

PS手把手教你绘制写实的音乐播放器图标

  最终效果图: 新建一个600*600画布. 来个白到灰的径向渐变. 椭圆工具画个300*300的圆. 直接选择工具选中这两个点. 右键,自由变换点,在箭头标注的W位置输入80. 重复上一步骤,选中上面两个点,在H位置输入80. 居中下,调整下大小自己感觉合适即可. 给调整好的圆角矩形添加图层样式,投影,渐变叠加.内阴影,斜面浮雕. 调整图层样式后的圆角矩形变的更有立体感. 画一个圆大小自定,用渐变叠加调处金属质感. 接着添加斜面浮雕和投影. 再画一个圆. 添加图层样式,先来个渐变叠加. 投影

js面向对象实现canvas制作彩虹球喷枪效果_javascript技巧

前段时间在研究canvas,感觉还挺好玩的,就写了一个小demo,效果如下: 第一次尝试用js面向对象的方式来写,经验不足,还请大家多多包涵.  下面开始简单介绍代码:  canvas画布: 复制代码 代码如下: <canvas id='canvas' width='1050' height='500' style='background:#333;overflow: hidden;'></canvas> 彩虹球的随机颜色是通过下面两个方法来实现的,在<js常用方法和一些封装

插件-linux下用Qt制作音乐播放器

问题描述 linux下用Qt制作音乐播放器 linux下用Qt制作音乐播放器时提示缺少插件phonon怎么解决,网上搜索了很多,但还是解决不了 解决方案 http://wenku.baidu.com/link?url=ek6Npa245WzZ2Z2vfWnc6at6m51_Wz0DUy74wK2JDPT5O4aZ_KBb3y6VTx8R-v64CZZPCF3y1qVqzu7cBDbsNgWPU-RgJfK5Y8EqrAAdUgu 解决方案二: http://download.csdn.net/d

音乐播放器实现-学习课程:制作音乐播放器

问题描述 学习课程:制作音乐播放器 在什么地方可以找到有关音乐播放器教学的代码吗?求大神告知,,大神有会的的能不能帮助一下 解决方案 其实百度和csdn都有很多啊,毕业设计很多人做这些东西播放器毕设 csdn下载上面的:播放器

JS模拟酷狗音乐播放器收缩折叠关闭效果代码_javascript技巧

本文实例讲述了JS模拟酷狗音乐播放器收缩折叠关闭效果代码.分享给大家供大家参考,具体如下: 这是一款模拟酷狗音乐播放器的关闭特效,采用JavaScript实现,关闭的时候播放界面缩成一条线,然后消失,就像有些电视机突然停电的效果,很有意思的网页动画特效. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-kugou-music-player-style-demo/ 具体代码如下: <!DOCTYPE html PUBLIC "-//W3