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 dialog键盘事件代码
Aug 01 Javascript
javascript数组去重方法终极总结
Jun 05 Javascript
JQuery异步加载PartialView的方法
Jun 07 Javascript
JS实现弹出居中的模式窗口示例
Jun 20 Javascript
Angular设置title信息解决SEO方面存在问题
Aug 19 Javascript
node.js中cluster的使用教程
Jun 09 Javascript
react实现菜单权限控制的方法
Dec 11 Javascript
js中的闭包学习心得
Feb 06 Javascript
Vue 页面跳转不用router-link的实现代码
Apr 12 Javascript
详解vue-cli中使用rem,vue自适应
May 06 Javascript
Vue循环遍历选项赋值到对应控件的实现方法
Jun 22 Javascript
vue实现图片裁剪后上传
Dec 16 Vue.js
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引用(&amp;)各种使用方法实例详解
2014/03/20 PHP
四个常见html网页乱码问题及解决办法
2015/09/08 PHP
Thinkphp框架开发移动端接口(2)
2016/08/18 PHP
PHP遍历目录文件的常用方法小结
2017/02/03 PHP
PHP dirname功能及原理实例解析
2020/10/28 PHP
IE本地存储userdata的一个bug说明
2010/07/01 Javascript
基于jQuery的输入框在光标位置插入内容, 并选中
2011/10/29 Javascript
类似天猫商品详情随浏览器移动的示例代码
2014/02/27 Javascript
js图片实时加载提供网页打开速度
2014/09/11 Javascript
js设置document.domain实现跨域的注意点分析
2015/05/21 Javascript
Element-ui之ElScrollBar组件滚动条的使用方法
2018/09/14 Javascript
详解Angular中实现自定义组件的双向绑定的两种方法
2018/11/23 Javascript
原生JS实现图片懒加载之页面性能优化
2019/04/26 Javascript
使用express获取微信小程序二维码小记
2019/05/21 Javascript
vue学习笔记之slot插槽基本用法实例分析
2020/02/01 Javascript
vue实现前端分页完整代码
2020/06/17 Javascript
[01:13:08]2018DOTA2亚洲邀请赛4.6 淘汰赛 mineski vs LGD 第二场
2018/04/10 DOTA
python操作gmail实例
2015/01/14 Python
Python 中迭代器与生成器实例详解
2017/03/29 Python
python flask中静态文件的管理方法
2018/03/20 Python
python获取微信企业号打卡数据并生成windows计划任务
2019/04/30 Python
python实现超级玛丽游戏
2020/03/18 Python
django ListView的使用 ListView中获取url中的参数值方式
2020/03/27 Python
详解HTML5中的元素与元素
2015/08/17 HTML / CSS
海蓝之谜(LA MER)澳大利亚官方商城:全球高端奢华护肤品牌
2017/10/27 全球购物
Carolina Lemke Berlin澳大利亚官网:时尚太阳镜品牌
2019/09/17 全球购物
应届专科生个人的自我评价
2014/01/05 职场文书
喝酒检查书范文
2014/02/23 职场文书
学习方法演讲稿
2014/05/10 职场文书
建材投资建议书
2014/05/16 职场文书
落实八项规定专题民主生活会对照检查材料
2014/09/15 职场文书
地方白酒代理协议书
2014/10/25 职场文书
支教个人总结
2015/03/04 职场文书
2015年中职班主任工作总结
2015/05/25 职场文书
2016年先进教师个人事迹材料
2016/02/26 职场文书
详解nodejs内置模块
2021/05/06 NodeJs