合并组件

This commit is contained in:
2023-10-19 00:21:45 +08:00
parent 1cdfc924d2
commit 247e3e532d
1 changed files with 18 additions and 23 deletions

View File

@ -12,8 +12,6 @@ export default class MusicList {
this.audio = new Audio() this.audio = new Audio()
this.audio.autoplay = true this.audio.autoplay = true
this.audio.controls = true this.audio.controls = true
this.audio.style.width = '100%'
this.audio.style.height = '5rem'
this.audio.style.margin = '1rem 2rem' this.audio.style.margin = '1rem 2rem'
this.audio.addEventListener('play', () => { this.audio.addEventListener('play', () => {
this.event.onplay(this.playing) this.event.onplay(this.playing)
@ -30,37 +28,34 @@ export default class MusicList {
// 收起到右上角, 音乐播放器基于浮窗定位, 不再占用页面空间 // 收起到右上角, 音乐播放器基于浮窗定位, 不再占用页面空间
const element = createElement({ const element = createElement({
textContent: '音乐', //textContent: '音乐',
style: { position: 'fixed', top: '5rem', right: '1rem', backgroundColor: '#eee', padding: '.5rem', borderRadius: '1rem', cursor: 'pointer' }, style: { position: 'fixed', top: '5rem', right: '1rem', backgroundColor: '#eee', padding: '.5rem', borderRadius: '1rem', cursor: 'pointer' },
onclick: event => { onclick: event => {
this.ul.classList.toggle('disable') this.ul.classList.toggle('disable')
}, },
children: [ children: [
this.audio, this.audio,
this.ul this.ul,
UploadMusic({
style: { width: '20rem', height: '5rem', margin: '1rem 2rem' },
onchange: files => {
for (const file of files) {
const id = 'music' + Date.now()
const { name, size, type } = file
const reader = new FileReader()
reader.onload = async event => {
const arrayBuffer = event.target.result
this.add({ id, name, size, type, arrayBuffer }) // 添加到列表(默认并不存储)
this.like({ id, name, size, type, arrayBuffer }) // 本地缓存的必要条件是喜欢
}
reader.readAsArrayBuffer(file)
}
}
})
] ]
}) })
document.body.appendChild(element) document.body.appendChild(element)
// 本地添加音乐按钮
document.body.appendChild(UploadMusic({
style: { width: '20rem', height: '5rem', margin: '1rem 2rem' },
onchange: files => {
for (const file of files) {
const id = 'music' + Date.now()
const { name, size, type } = file
const reader = new FileReader()
reader.onload = async event => {
const arrayBuffer = event.target.result
this.add({ id, name, size, type, arrayBuffer }) // 添加到列表(默认并不存储)
this.like({ id, name, size, type, arrayBuffer }) // 本地缓存的必要条件是喜欢
}
reader.readAsArrayBuffer(file)
}
}
}))
// 写入 css 样式到 head // 写入 css 样式到 head
const style = document.createElement('style') const style = document.createElement('style')
style.innerText = ` style.innerText = `