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 相关文章推荐
jQueryUI写一个调整分类的拖放效果实现代码
May 10 Javascript
jquery ready(fn)事件使用介绍
Aug 21 Javascript
判断文档离浏览器顶部的距离的方法
Jan 08 Javascript
jquery实现鼠标滑过小图时显示大图的方法
Jan 14 Javascript
举例讲解JavaScript中将数组元素转换为字符串的方法
Oct 25 Javascript
js获取及判断键盘按键的方法
Dec 01 Javascript
jQuery表格(Table)基本操作实例分析
Mar 10 Javascript
Angular实现点击按钮后在上方显示输入内容的方法
Dec 27 Javascript
webpack 打包压缩js和css的方法示例
Mar 20 Javascript
JS实现的缓冲运动效果示例
Apr 30 Javascript
layui获取选中行数据的实例讲解
Aug 19 Javascript
说说Vuex的getters属性的具体用法
Apr 15 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
当年上海收录机产品生产,进口和价格情况
2021/03/04 无线电
PHP 解决session死锁的方法
2013/06/20 PHP
解析zend studio中直接导入svn中的项目的方法步骤
2013/06/21 PHP
兼容各大浏览器带关闭按钮的漂浮多组图片广告代码
2014/06/05 PHP
CodeIgniter模板引擎使用实例
2014/07/15 PHP
PHP编程计算日期间隔天数的方法
2017/04/26 PHP
[原创]php实现数组按拼音顺序排序的方法
2017/05/03 PHP
javascript div 遮罩层封锁整个页面
2009/07/10 Javascript
JavaScript this 深入理解
2009/07/30 Javascript
jquery做的一个简单的屏幕锁定提示框
2014/03/26 Javascript
jQuery判断元素是否存在的可靠方法
2014/05/06 Javascript
javascript字符串替换函数如何一次性全部替换掉
2015/10/30 Javascript
JavaScript判断数字是否为质数的方法汇总
2016/06/02 Javascript
jstl中判断list中是否包含某个值的简单方法
2016/10/14 Javascript
javascript实现右下角广告框效果
2017/02/01 Javascript
详解Node.js中的Async和Await函数
2018/02/22 Javascript
Chart.js 轻量级HTML5图表绘制工具库(知识整理)
2018/05/22 Javascript
node.js环境搭建图文详解
2018/09/19 Javascript
JavaScript的词法结构精华篇
2018/10/17 Javascript
TypeScript基础入门教程之三重斜线指令详解
2018/10/22 Javascript
vue中axios实现数据交互与跨域问题
2019/05/12 Javascript
JS实现灯泡开关特效
2020/03/30 Javascript
vue-model实现简易计算器
2020/08/17 Javascript
js实现简单的无缝轮播效果
2020/09/05 Javascript
[01:14]英雄,所敬略同——2018完美盛典宣传视频4K
2018/12/05 DOTA
Python科学计算环境推荐——Anaconda
2014/06/30 Python
漂亮的Django Markdown富文本app插件的实现
2019/01/02 Python
pybind11在Windows下的使用教程
2019/07/04 Python
python字符串分割及字符串的一些常规方法
2019/07/24 Python
Python过滤序列元素的方法
2020/07/31 Python
人力资源经理自我评价
2014/01/04 职场文书
监督检查工作方案
2014/05/28 职场文书
董事长助理工作职责
2014/06/08 职场文书
2014购房个人委托书范本
2014/10/12 职场文书
离婚案件上诉状
2015/05/23 职场文书
2015年物业管理员工工作总结
2015/10/15 职场文书