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 UI的Dialog无法提交问题的解决方法
Jan 11 Javascript
Extjs中通过Tree加载右侧TabPanel具体实现
May 05 Javascript
jquery选择符快速提取web表单数据示例
Mar 27 Javascript
javascript验证身份证号
Mar 03 Javascript
基于jQuery+PHP+Mysql实现在线拍照和在线浏览照片
Sep 06 Javascript
全面解析Bootstrap中tooltip、popover的使用方法
Jun 13 Javascript
Vue响应式原理详解
Apr 18 Javascript
纯html+css+javascript实现楼层跳跃式的页面布局(实例代码)
Oct 25 Javascript
jquery.pagination.js分页使用教程
Oct 23 jQuery
Echart折线图手柄触发事件示例详解
Dec 16 Javascript
基于Node.js搭建hexo博客过程详解
Jun 25 Javascript
使用Node.js实现base64和png文件相互转换的方法
Mar 11 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
MYSQL环境变量设置方法
2007/01/15 PHP
php 表单数据的获取代码
2009/03/10 PHP
PHP微信刮刮卡 附微信接口
2016/07/22 PHP
PHP实现表单提交数据的验证处理功能【防SQL注入和XSS攻击等】
2017/07/21 PHP
仿中关村在线首页弹出式广告插件(jQuery版)
2012/05/03 Javascript
javascript 快速排序函数代码
2012/05/30 Javascript
Javascript基础知识(二)事件
2014/09/29 Javascript
js实现全国省份城市级联下拉菜单效果代码
2015/09/07 Javascript
jQuery实现下拉框左右移动(全部移动,已选移动)
2016/04/15 Javascript
jquery hover 不停闪动问题的解决方法(亦为stop()的使用)
2017/02/10 Javascript
微信小程序实现带刻度尺滑块功能
2017/03/29 Javascript
angular中实现控制器之间传递参数的方式
2017/04/24 Javascript
Vue组件内部实现一个双向数据绑定的实例代码
2019/04/04 Javascript
JavaScript中的 new 命令
2019/05/22 Javascript
在vue中使用axios实现post方式获取二进制流下载文件(实例代码)
2019/12/16 Javascript
extjs图形绘制之饼图实现方法分析
2020/03/06 Javascript
python开启多个子进程并行运行的方法
2015/04/18 Python
Python中编写ORM框架的入门指引
2015/04/29 Python
Python判断文件或文件夹是否存在的三种方法
2017/07/27 Python
Python数据结构之顺序表的实现代码示例
2017/11/15 Python
itchat-python搭建微信机器人(附示例)
2019/06/11 Python
python爬虫中多线程的使用详解
2019/09/23 Python
导入tensorflow时报错:cannot import name 'abs'的解决
2019/10/10 Python
Python3连接Mysql8.0遇到的问题及处理步骤
2020/02/17 Python
python如何删除列为空的行
2020/07/17 Python
Python控制鼠标键盘代码实例
2020/12/08 Python
HTML5验证以及日期显示的实现详解
2013/07/05 HTML / CSS
Html5实现文件异步上传功能
2017/05/19 HTML / CSS
英国手机零售商:Carphone Warehouse
2018/06/06 全球购物
探亲邀请信范文
2014/01/30 职场文书
初中同学会活动方案
2014/08/22 职场文书
2016大学生入党积极分子心得体会
2016/01/06 职场文书
Python读取文件夹下的所有文件实例代码
2021/04/02 Python
python实现腾讯滑块验证码识别
2021/04/27 Python
Python使用OpenCV和K-Means聚类对毕业照进行图像分割
2021/06/11 Python
彻底卸载VMware虚拟机的超详细步骤记录
2022/07/15 Servers