<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>模拟一个音乐播放器</title>
</head>
<body>
<div id="app"></div> <script>
class AudioPlayer{
//从无到有生成一个音乐播放器,并且获取歌单列表等等
constructor(container){ //生成完的播放器插入到container元素中
this.container = document.querySelector(container) this.songList = [];
this.dom = null; //播放器dom元素
this.audio = new Audio(); //Audio对象,用于播放音频,可以读取音频资源 //类在实例化的时候,this会指向实例化对象.实例化对象会继承类中定义的方法 和属性,所以在一个方法中,是可以通过this调用另一个方法的,这相当于实例化对象调用了自己的方法.
//读取歌单列表
this.getSongs();
//创建dom对象
this.createElement();
//绑定事件
this.bindEvents();
//渲染dom到页面
this.render();
} getSongs(){
//...ajax...
this.songsList = [
{
cover:'',
url:'.mp3',
singer:{},
name:''
}
];
}
createElement(){
//生成dom
const div = document.createElement('div')
div.innerHTML = `
<div class="btn">播放按钮</div>
<div>进度条</div>
`;
this.dom = div;
}
bindEvents(){
this.dom.querySelector('.btn').addEventListener('click',() => {
console.log('开始播放');
})
}
render(){
this.container.appendChild(this.dom);
}
} new AudioPlayer('#app') </script>
</body>
</html>

最新文章

  1. [Django] Setting up Django Development Environment in Ubuntu 14.04
  2. WC2015 酱油记
  3. 边工作边刷题:70天一遍leetcode: day 85-1
  4. PHP配置,php.ini以及覆盖问题
  5. 桂电在linux环境下使用出校器
  6. ANT教程经典
  7. python 内建函数 type() 和 isinstance() 介绍
  8. IOS 解析XML--使用NSXML
  9. C#学习笔记---基础入门(二)
  10. Android(java)学习笔记229:服务(service)之绑定服务调用服务里面的方法 (采用接口隐藏代码内部实现)
  11. zabbix log(logrt) key的使用
  12. javascript模拟html title
  13. ssh远程登陆脚本(带跳板机)
  14. --save与--save-dev的区别
  15. 力扣(LeetCode)219. 存在重复元素 II
  16. 【转】matlab的textscan与textread区别
  17. python邮件发送
  18. odoo 打印单
  19. 汇编-MOV指令
  20. 【DeepLearning】Exercise:Softmax Regression

热门文章

  1. Cesium产品体系
  2. ODOO14笔记---系统升级崩溃后进不去系统解决办法
  3. JDK1.7HashMap死锁
  4. Capture One 21 Pro 14.0.2.36中文版安装教程
  5. post传参params与body的区别(@RequestParam和@RequestBody的区别)
  6. 学会这十招,轻松搜索github优质项目
  7. centos 7 网络静态IP配置文件
  8. 自建简易FaaS平台
  9. Input 只能输入正数以及2位小数点
  10. 自学linux——19.TFTP服务器的搭建