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替换table中的内容并显示进度条的代码
Aug 02 Javascript
Javascript改变CSS样式(局部和全局)
Dec 18 Javascript
js二维数组排序的简单示例代码
Jan 24 Javascript
用jquery等比例控制图片宽高的具体实现
Jan 28 Javascript
JavaScript中的数值范围介绍
Dec 29 Javascript
JavaScript返回网页中锚点数目的方法
Apr 03 Javascript
smartcrop.js智能图片裁剪库
Oct 14 Javascript
关于Jquery中的事件绑定总结
Oct 26 Javascript
flag和jq on 的绑定多个对象和方法(必看)
Feb 27 Javascript
微信小程序实现同一页面取值的方法分析
Apr 30 Javascript
vue实现短信验证码输入框
Apr 17 Javascript
解决elementUI 切换tab后 el_table 固定列下方多了一条线问题
Jul 19 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
转生史莱姆:萌王第一次撸串开心到飞起,哥布塔撸串却神似界王神
2018/11/30 日漫
Zend Framework 2.0事件管理器(The EventManager)入门教程
2014/08/11 PHP
PHP获取photoshop写入图片文字信息的方法
2015/03/31 PHP
php metaphone()函数的定义和用法
2016/05/15 PHP
用javascript连接access数据库的方法
2006/11/17 Javascript
js兼容标准的表格变色效果
2008/06/28 Javascript
javascript 装载iframe子页面,自适应高度
2009/03/20 Javascript
JavaScript调用后台的三种方法实例
2013/10/17 Javascript
vue.js 表格分页ajax 异步加载数据
2016/10/18 Javascript
jQuery实现元素的插入
2017/02/27 Javascript
Vue之Watcher源码解析(2)
2017/07/19 Javascript
node.js环境搭建图文详解
2018/09/19 Javascript
JavaScript作用域链实例详解
2019/01/21 Javascript
vue2.x 通过后端接口代理,获取qq音乐api的数据示例
2019/10/30 Javascript
vue 组件内获取actions的response方式
2019/11/08 Javascript
浅谈vue中组件绑定事件时是否加.native
2019/11/09 Javascript
JavaScript对象字面量和构造函数原理与用法详解
2020/04/18 Javascript
element-ui中el-upload多文件一次性上传的实现
2020/12/02 Javascript
[03:58]兄弟们,回来开黑了!DOTA2昔日战友招募宣传视频
2016/07/17 DOTA
解析Python编程中的包结构
2015/10/25 Python
python itchat实现微信自动回复的示例代码
2017/08/14 Python
python的pytest框架之命令行参数详解(上)
2019/06/27 Python
PyTorch预训练的实现
2019/09/18 Python
利用pipenv和pyenv管理多个相互独立的Python虚拟开发环境
2020/11/01 Python
Sublime Text3最新激活注册码分享适用2020最新版 亲测可用
2020/11/12 Python
Python self用法详解
2020/11/28 Python
html5音频_动力节点Java学院整理
2018/08/22 HTML / CSS
HTML5 Canvas的事件处理介绍
2015/04/24 HTML / CSS
法国高保真音响和家庭影院商店:Son Video
2019/04/26 全球购物
Unix里面如何在后台运行程序
2016/10/14 面试题
酒店人事专员岗位职责
2013/12/19 职场文书
教育实习指导教师评语
2014/12/31 职场文书
2015年度企业工作总结
2015/05/21 职场文书
《悲惨世界》:比天空更广阔的是人的心灵
2020/01/16 职场文书
电脑无法安装Windows 11怎么办?无法安装Win11的解决方法
2021/11/21 数码科技
vue router 动态路由清除方式
2022/05/25 Vue.js