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 相关文章推荐
jQuery制作的别致导航有阴影背景高亮模式窗口
Apr 15 Javascript
JavaScript+CSS无限极分类效果完整实现方法
Dec 22 Javascript
js设置文字颜色的方法示例
Dec 30 Javascript
JQuery选中select组件被选中的值方法
Mar 08 jQuery
实例详解ztree在vue项目中使用并且带有搜索功能
Aug 24 Javascript
浅谈React之状态(State)
Sep 19 Javascript
利用JS代码自动删除稿件的普通弹幕功能
Sep 20 Javascript
JavaScript Reflect Metadata实现详解
Dec 12 Javascript
Vue事件处理原理及过程详解
Mar 11 Javascript
Vue路由的模块自动化与统一加载实现
Jun 05 Javascript
最全vue的vue-amap使用高德地图插件画多边形范围的示例代码
Jul 17 Javascript
基于Vue.js+Nuxt开发自定义弹出层组件
Oct 09 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
把从SQL中取出的数据转化成XMl格式
2006/10/09 PHP
简单易用的计数器(数据库)
2006/10/09 PHP
关于php fread()使用技巧
2010/01/22 PHP
PHP导出EXCEL快速开发指南--PHPEXCEL的使用详解
2013/06/03 PHP
给ECShop添加最新评论
2015/01/07 PHP
php结合curl实现多线程抓取
2015/07/09 PHP
PHP 搜索查询功能实现
2016/11/29 PHP
jQuery 关于伪类选择符的使用说明
2013/04/24 Javascript
Javascript加载速度慢的解决方案
2014/03/11 Javascript
jquery中checkbox全选失效的解决方法
2014/12/26 Javascript
JavaScript为事件句柄绑定监听函数实例详解
2015/12/15 Javascript
Bootstrap登陆注册页面开发教程
2016/07/12 Javascript
jQuery时间日期三级联动(推荐)
2016/11/27 Javascript
浅谈javascript的闭包
2017/01/23 Javascript
简单实现bootstrap选项卡效果
2017/02/08 Javascript
Js中async/await的执行顺序详解
2017/09/22 Javascript
vue3.0中使用postcss-pxtorem的具体方法
2019/11/20 Javascript
小程序卡片切换效果组件wxCardSwiper的实现
2020/02/13 Javascript
vue 通过 Prop 向子组件传递数据的实现方法
2020/10/30 Javascript
Python 实现一个颜色色值转换的小工具
2016/12/06 Python
微信跳一跳辅助python代码实现
2018/01/05 Python
tensorflow 加载部分变量的实例讲解
2018/07/27 Python
Python实现的大数据分析操作系统日志功能示例
2019/02/11 Python
Python/Django后端使用PIL Image生成头像缩略图
2019/04/30 Python
django中使用POST方法获取POST数据
2019/08/20 Python
Python的几种主动结束程序方式
2019/11/22 Python
解决Pycharm 运行后没有输出的问题
2021/02/05 Python
兰蔻俄罗斯官方网站:Lancome俄罗斯
2019/12/09 全球购物
浙大网新C/C++面试解惑
2015/05/27 面试题
造型师求职自荐信
2013/09/27 职场文书
求职简历推荐信范文
2013/12/02 职场文书
运动会解说词100字
2014/01/31 职场文书
共产党员公开承诺书范文
2014/03/28 职场文书
大二学生学年自我鉴定
2014/09/12 职场文书
乡镇干部个人对照检查材料(群众路线)
2014/09/26 职场文书
联村联户简报
2015/07/21 职场文书