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 相关文章推荐
Javascript下判断是否为闰年的Datetime包
Oct 26 Javascript
关于COOKIE个数与大小的问题
Jan 17 Javascript
AngularJS入门教程之数据绑定原理详解
Nov 02 Javascript
微信小程序 wx.uploadFile在安卓手机上面the same task is working问题解决
Dec 14 Javascript
AngularJS实现动态添加Option的方法
May 17 Javascript
微信小程序实现点击按钮修改view标签背景颜色功能示例【附demo源码下载】
Dec 06 Javascript
vue2.0+koa2+mongodb实现注册登录
Apr 10 Javascript
JavaScript高级函数应用之分时函数实例分析
Aug 03 Javascript
vue如何自动化打包测试环境和正式环境的dist/test文件
Jun 06 Javascript
JS实现继承的几种常用方式示例
Jun 22 Javascript
微信小程序wx.navigateTo方法里的events参数使用详情及场景
Jan 07 Javascript
ReactRouter的实现方法
Jan 25 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
php Memcache 中实现消息队列
2009/11/24 PHP
PHP下判断网址是否有效的代码
2011/10/08 PHP
PHP中的生成XML文件的4种方法分享
2012/10/06 PHP
ThinkPHP公共配置文件与各自项目中配置文件组合的方法
2014/11/24 PHP
PHP会话控制实例分析
2016/12/24 PHP
PHP操作redis实现的分页列表,新增,删除功能封装类与用法示例
2018/08/04 PHP
php桥接模式应用案例分析
2019/10/23 PHP
为JavaScript添加重载函数的辅助方法
2010/07/04 Javascript
js jquery验证银行卡号信息正则学习
2013/01/21 Javascript
JQuery操作单选按钮以及复选按钮示例
2013/09/23 Javascript
jQuery中$.extend()用法实例
2015/06/24 Javascript
深入JavaScript高级程序设计之对象、数组(栈方法,队列方法,重排序方法,迭代方法)
2015/12/01 Javascript
AngularJS 使用$sce控制代码安全检查
2016/01/05 Javascript
jQuery easyui的validatebox校验规则扩展及easyui校验框validatebox用法
2016/01/18 Javascript
基于JavaScript实现智能右键菜单
2016/03/02 Javascript
通用无限极下拉菜单的实现代码
2016/05/31 Javascript
nodejs中art-template模板语法的引入及冲突解决方案
2017/11/07 NodeJs
vue非父子组件通信问题及解决方法
2018/06/11 Javascript
Vue 实现从文件中获取文本信息的方法详解
2019/10/16 Javascript
jquery实现商品sku多属性选择功能(商品详情页)
2019/12/20 jQuery
Vue使用轮询定时发送请求代码
2020/08/10 Javascript
vue 通过 Prop 向子组件传递数据的实现方法
2020/10/30 Javascript
用Javascript实现发送短信验证码间隔功能
2021/02/08 Javascript
Python轻量级ORM框架Peewee访问sqlite数据库的方法详解
2017/07/20 Python
给你选择Python语言实现机器学习算法的三大理由
2017/11/15 Python
python实现字符串加密成纯数字
2019/03/19 Python
pytorch 更改预训练模型网络结构的方法
2019/08/19 Python
Java文件与类动手动脑实例详解
2019/11/10 Python
python3.7+selenium模拟淘宝登录功能的实现
2020/05/26 Python
Myprotein法国官网:欧洲第一运动营养品牌
2019/03/26 全球购物
如何配置、使用和清除Smarty缓存
2015/12/23 面试题
中国梦我的梦演讲稿
2014/04/23 职场文书
2014年纪委工作总结
2014/12/05 职场文书
教师个人师德总结
2015/02/06 职场文书
2015年五一劳动节演讲稿
2015/03/18 职场文书
2015年度物业公司工作总结
2015/04/27 职场文书