JavaScript实现音乐自动切换和轮播


Posted in Javascript onNovember 05, 2017

前言:前两天有个同学问我音乐自动切换,并在所有歌曲都播放完成以后实现循环播放的效果。自己折腾了一下做了出来,今天整理桌面的时候突然看见,在拖到回收站的一瞬间想着还是写一篇博客分享一下。实现的方法有很多种,我这里简单的实现。

通过修改video的src(这种应该是最好节省资源的)

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>welcome</title>
 <style type="text/css">
  .content {
   width: 600px;
   margin:0 auto;
   border:1px solid red;
  }
  .left-bar {
   width: 300px;
   height: 200px;
   float: left;
   border:1px solid red;
  }
  ul li {
   list-style: none;
   margin-top: 20px;
   cursor: pointer;
  }
  li:hover {
   color: orange;
  }
 </style>
</head>

<body>
<div class="left-bar">
 <ul>
  <li class="music-name">十年</li>
  <li class="music-name">朋友</li>
  <li class="music-name">勇气</li>
 </ul>
</div>
<div class="content">
 <video src="" id="video1" controls autoplay></video>
 <button id="btn">按钮</button>
</div>

<script>
 window.onload = function() {
  // 歌曲列表
  var music = [
   {id: 1, name:"十年"},
   {id: 2, name:"朋友"},
   {id: 3, name:"勇气"}
  ]
  // 记录当前是哪首歌曲
  var currentMusic = 0;
  // 获取DOM
  var oVideo1 = document.querySelector("#video1");
  // 初始化
  oVideo1.src = music[0].name + '.mp3';

  // 歌曲结束事件
  oVideo1.onended = function() {
   currentMusic += 1;
   // 判断是否是最后一首
   if(currentMusic === music.length) {
    currentMusic = 0;
   }
   var sr = music[currentMusic].name + '.mp3';
   this.src=sr;
  }

  // 获取左边歌曲列表的DOM
  var aList = document.getElementsByClassName("music-name");
  for(var i=0; i<aList.length; i++) {
   // 为了知道具体是那一个li
   aList[i].index = i;
   // 给每一个li设定一个事件
   aList[i].onclick = function() {
    oVideo1.src = music[this.index].name + ".mp3";
   }
  }
 }
</script>

</body>
</html>

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

Javascript 相关文章推荐
一个简单的JavaScript 日期计算算法
Sep 11 Javascript
js 数值项目的格式化函数代码
May 14 Javascript
javascript中的关于类型转换的性能优化
Dec 14 Javascript
javascript自定义startWith()和endWith()的两种方法
Nov 11 Javascript
JavaScript中实现最高效的数组乱序方法
Oct 11 Javascript
js仿3366小游戏选字游戏
Apr 14 Javascript
js 弹出对话框(遮罩)透明,可拖动的简单实例
Jul 11 Javascript
js仿京东轮播效果 选项卡套选项卡使用
Jan 12 Javascript
easyui-edatagrid.js实现回车键结束编辑功能的实例
Apr 12 Javascript
浅谈angularJS的$watch失效问题的解决方案
Aug 11 Javascript
vue使用自定义icon图标的方法
May 14 Javascript
webgl实现物体描边效果的方法介绍
Nov 27 Javascript
vue+node+webpack环境搭建教程
Nov 05 #Javascript
JavaScript实现三级级联特效
Nov 05 #Javascript
angular中不同的组件间传值与通信的方法
Nov 04 #Javascript
详解使用React全家桶搭建一个后台管理系统
Nov 04 #Javascript
JavaScript中立即执行函数实例详解
Nov 04 #Javascript
Vue全家桶实践项目总结(推荐)
Nov 04 #Javascript
浅谈Vuex的状态管理(全家桶)
Nov 04 #Javascript
You might like
第十二节--类的自动加载
2006/11/16 PHP
PHP示例演示发送邮件给某个邮箱
2019/04/03 PHP
jquery $.ajax入门应用二
2008/11/19 Javascript
createElement动态创建HTML对象脚本代码
2008/11/24 Javascript
JavaScript DOM学习第六章 表单实例
2010/02/19 Javascript
基于jquery实现的文字向上跑动类似跑马灯的效果
2014/06/17 Javascript
简单的JS时钟实例讲解
2016/01/13 Javascript
JavaScript的设计模式经典之建造者模式
2016/02/24 Javascript
jQuery购物车插件jsorder用法(支持后台处理程序直接转换成DataTable处理)
2016/06/08 Javascript
AngularJS使用ng-repeat指令实现下拉框
2016/08/23 Javascript
layer弹出层框架alert与msg详解
2017/03/14 Javascript
Vue.js项目模板搭建图文教程
2017/09/20 Javascript
AngularJS 教程及实例代码
2017/10/23 Javascript
NodeJS 实现多语言的示例代码
2018/09/11 NodeJs
搭建基于express框架运行环境的方法步骤
2018/11/15 Javascript
vue fetch中的.then()的正确使用方法
2020/04/17 Javascript
JavaScript隐式类型转换代码实例
2020/05/29 Javascript
vue 修改 data 数据问题并实时显示操作
2020/09/07 Javascript
[33:23]VG vs Pain 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python生成随机mac地址的方法
2015/03/16 Python
Python中time模块与datetime模块在使用中的不同之处
2015/11/24 Python
Python实现输出某区间范围内全部素数的方法
2018/05/02 Python
Pandas之排序函数sort_values()的实现
2019/07/09 Python
Python中的self用法详解
2019/08/06 Python
Python基本语法之运算符功能与用法详解
2019/10/22 Python
Pandas实现DataFrame按行求百分数(比例数)
2019/12/27 Python
python字符串替换re.sub()实例解析
2020/02/09 Python
Keras 快速解决OOM超内存的问题
2020/06/11 Python
Django视图、传参和forms验证操作
2020/07/15 Python
解决python3中os.popen()出错的问题
2020/11/19 Python
python和opencv构建运动检测器的实现
2021/03/03 Python
老师的检讨书
2014/02/23 职场文书
单位考核聘任报告
2015/03/02 职场文书
2015年档案管理工作总结
2015/04/08 职场文书
python基础之文件操作
2021/10/24 Python
关于的python五子棋的算法
2022/05/02 Python