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+EasyDrag 实现弹出可拖动的Div,同时向Div传值,然后返回Div选中的值
Oct 24 Javascript
Javascript的getYear、getFullYear、getUTCFullYear异同分享
Nov 30 Javascript
javascript:void(0)使用探讨
Aug 27 Javascript
JavaScript包装对象使用介绍
Aug 29 Javascript
弹出窗口并且此窗口带有半透明的遮罩层效果
Mar 13 Javascript
用js通过url传参把数据从一个页面传到另一个页面
Sep 01 Javascript
JavaScript实现数据类型的相互转换
Mar 06 Javascript
JavaScript拖动层Div代码
Mar 01 Javascript
VUE axios发送跨域请求需要注意的问题
Jul 06 Javascript
angular第三方包开发整理(小结)
Apr 19 Javascript
Vue使用Canvas绘制图片、矩形、线条、文字,下载图片
Apr 26 Javascript
webpack + vue 打包生成公共配置文件(域名) 方便动态修改
Aug 29 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/10/09 PHP
PHP mysql与mysqli事务使用说明 分享
2013/08/17 PHP
php使用curl出现Expect:100-continue解决方法
2015/03/03 PHP
Yii rules常用规则示例
2016/03/15 PHP
PHPTree――php快速生成无限级分类
2018/03/30 PHP
jquery blockUI 遮罩不能消失与不能提交的解决方法
2011/09/17 Javascript
javascript如何创建表格(javascript绘制表格的二种方法)
2013/12/10 Javascript
JavaScript中的console.log()函数详细介绍
2014/12/29 Javascript
异步安全加载javascript文件的方法
2015/07/21 Javascript
JavaScript接口的实现三种方式(推荐)
2016/06/14 Javascript
老生常谈 关于JavaScript的类的继承
2016/06/24 Javascript
js中小数向上取整数,向下取整数,四舍五入取整数的实现(必看篇)
2017/02/13 Javascript
基于Bootstrap框架实现图片切换
2017/03/10 Javascript
Vue.js学习笔记之常用模板语法详解
2017/07/25 Javascript
解决ie11 SCRIPT5011:不能执行已释放Script的代码问题
2019/05/05 Javascript
React中使用UMEditor的方法示例
2019/12/27 Javascript
Python中文竖排显示的方法
2015/07/28 Python
python下调用pytesseract识别某网站验证码的实现方法
2016/06/06 Python
Python面向对象程序设计之继承与多继承用法分析
2018/07/13 Python
Python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等】
2019/03/30 Python
Python简直是万能的,这5大主要用途你一定要知道!(推荐)
2019/04/03 Python
python找出一个列表中相同元素的多个索引实例
2019/06/11 Python
Pytorch 保存模型生成图片方式
2020/01/10 Python
pycharm中选中一个单词替换所有重复单词的实现方法
2020/11/17 Python
CSS3中的元素过渡属性transition示例详解
2016/11/30 HTML / CSS
解决canvas转base64/jpeg时透明区域变成黑色背景的方法
2016/10/23 HTML / CSS
移动端HTML5 input常见问题(小结)
2020/09/28 HTML / CSS
如何在Shell脚本中使用函数
2015/09/06 面试题
护理专业本科生自荐信
2013/10/01 职场文书
物业前台接待岗位职责
2015/04/03 职场文书
会议新闻稿
2015/07/17 职场文书
培训简讯范文
2015/07/20 职场文书
保护环境建议书作文300字
2015/09/14 职场文书
《遗弃》开发商删推文要跑路?官方回应:还在开发
2022/04/03 其他游戏
python使用opencv对图像添加噪声(高斯/椒盐/泊松/斑点)
2022/04/06 Python
Python如何加载模型并查看网络
2022/07/15 Python