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 相关文章推荐
利用Ext Js生成动态树实例代码
Sep 08 Javascript
28个JS验证函数收集
Mar 02 Javascript
根据经纬度计算地球上两点之间的距离js实现代码
Mar 05 Javascript
ExtJS下 Ext.Direct加载和提交过程排错小结
Apr 02 Javascript
jquery获取复选框被选中的值
Mar 22 Javascript
元素绑定click点击事件方法
Jun 08 Javascript
使用基于Node.js的构建工具Grunt来发布ASP.NET MVC项目
Feb 15 Javascript
vuejs指令详解
Feb 07 Javascript
vue页面使用阿里oss上传功能的实例(二)
Aug 09 Javascript
jQuery事件对象的属性和方法详解
Sep 09 jQuery
vue props default Array或是Object的正确写法说明
Jul 30 Javascript
Vue项目如何引入bootstrap、elementUI、echarts
Nov 26 Vue.js
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
php版微信公众平台回复中文出现乱码问题的解决方法
2016/09/22 PHP
phpcms的分类名称和类别名称的调用
2017/01/05 PHP
PHP封装curl的调用接口及常用函数详解
2018/05/31 PHP
AJAX分页的代码(后台asp.net)
2011/02/14 Javascript
文本框input聚焦失焦样式实现代码
2012/10/12 Javascript
自己写的兼容ie和ff的在线文本编辑器类似ewebeditor
2012/12/12 Javascript
jQuery+css实现百度百科的页面导航效果
2014/12/16 Javascript
JavaScript判断一个字符串是否包含指定子字符串的方法
2015/03/18 Javascript
详解AngularJS如何实现跨域请求
2016/08/22 Javascript
浅谈React Native Flexbox布局(小结)
2018/01/08 Javascript
微信小程序功能之全屏滚动效果的实现代码
2018/11/22 Javascript
浅谈webpack 四个核心概念之Entry
2019/06/12 Javascript
Vue优化:常见会导致内存泄漏问题及优化详解
2020/08/04 Javascript
使用vue编写h5公众号跳转小程序的实现代码
2020/11/27 Vue.js
[02:43]2018DOTA2亚洲邀请赛主赛事首日TOP5
2018/04/04 DOTA
Python使用turtule画五角星的方法
2015/07/09 Python
Python语言实现获取主机名根据端口杀死进程
2016/03/31 Python
对pandas的dataframe绘图并保存的实现方法
2017/08/05 Python
基于DataFrame筛选数据与loc的用法详解
2018/05/18 Python
Python list列表中删除多个重复元素操作示例
2019/02/27 Python
linux环境下Django的安装配置详解
2019/07/22 Python
解决tensorflow打印tensor有省略号的问题
2020/02/04 Python
python实现杨辉三角的几种方法代码实例
2021/03/02 Python
德国鞋子网上商店:Omoda.de
2017/03/31 全球购物
定制iPhone和Macbook保护壳:Slick Case
2018/11/21 全球购物
ASOS西班牙官网:英国在线时尚和美容零售商
2020/01/10 全球购物
企业为何需要商业计划书
2013/12/26 职场文书
护士毕业生自我鉴定
2014/02/08 职场文书
党员教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
2014年会计主管工作总结
2014/12/20 职场文书
就业意向协议书
2015/01/29 职场文书
2015年学校图书室工作总结
2015/05/19 职场文书
教师节领导致辞
2015/07/29 职场文书
初中英语教学反思范文
2016/02/15 职场文书
SpringBoot中使用Redis作为全局锁示例过程
2022/03/24 Java/Android
python字符串的一些常见实用操作
2022/04/06 Python