国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

基于vue-element組件實現音樂播放器功能

2019-11-19 13:54:28
字體:
來源:轉載
供稿:網友

最近在寫一個基于 github-page 和 gist 的博客, 想加個音樂播放器, 做了一個早上, 發出來分享一下

演示地址 https://github-laziji.github.io

效果

使用到的組件

element組件

  • 布局 Layout
  • 按鈕 Button
  • 滑塊 Slider
  • 進度條 Progress
  • 彈出框 Popover

html5組件

audio

實現代碼

更詳細的實現可以看 https://github.com/GitHub-Laziji/vblog

<template>  <div>  <el-row>   <el-col :span="4">    <el-popover    placement="top-start"    trigger="hover">     <div style="text-align: center">      <el-progress       color="#67C23A"      type="circle"       :percentage="music.volume"></el-progress><br>      <el-button       @click="changeVolume(-10)"      icon="el-icon-minus"       circle></el-button>      <el-button       @click="changeVolume(10)"      icon="el-icon-plus"       circle></el-button>     </div>     <el-button      @click="play"     id="play"     slot="reference"     :icon="music.isPlay?'el-icon-refresh':'el-icon-caret-right'"      circle></el-button>    </el-popover>   </el-col>   <el-col :span="14" style="padding-left: 20px">    <el-slider    @change="changeTime"    :format-tooltip="formatTime"    :max="music.maxTime"    v-model="music.currentTime"     style="width: 100%;"></el-slider>   </el-col>   <el-col :span="6" style="padding: 9px 0px 0px 10px;color:#909399;font-size: 13px">    {{formatTime(music.currentTime)}}/{{formatTime(music.maxTime)}}   </el-col>  </el-row>  <audio ref="music" loop autoplay>    <source src="http://sc1.111ttt.cn:8282/2018/1/03m/13/396131232171.m4a?tflag=1519095601&pin=6cd414115fdb9a950d827487b16b5f97#.mp3" type="audio/mpeg">  </audio> </div></template><script> export default{  data(){   return {    music:{     isPlay:false,     currentTime:0,     maxTime:0,     volume:100    }   }  },  mounted(){   this.$nextTick(()=>{    setInterval(this.listenMusic,1000)   })  },  methods:{   listenMusic(){    if(!this.$refs.music){     return    }    if(this.$refs.music.readyState){     this.music.maxTime = this.$refs.music.duration    }    this.music.isPlay=!this.$refs.music.paused    this.music.currentTime = this.$refs.music.currentTime   },   play(){    if(this.$refs.music.paused){     this.$refs.music.play()    }else{     this.$refs.music.pause()    }    this.music.isPlay=!this.$refs.music.paused    this.$nextTick(()=>{     document.getElementById('play').blur()    })   },   changeTime(time){    this.$refs.music.currentTime = time   },   changeVolume(v){    this.music.volume += v     if(this.music.volume>100){     this.music.volume = 100    }    if(this.music.volume<0){     this.music.volume = 0    }    this.$refs.music.volume = this.music.volume/100   },   formatTime(time){    let it = parseInt(time)    let m = parseInt(it/60)    let s = parseInt(it%60)    return (m<10?"0":"")+parseInt(it/60)+":"+(s<10?"0":"")+parseInt(it%60)   }  }  }</script>

總結

以上所述是小編給大家介紹的基于vue-element組件實現音樂播放器功能,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 突泉县| 牡丹江市| 沈阳市| 灯塔市| 长岭县| 马边| 吉林市| 德州市| 蓬溪县| 三原县| 卢湾区| 忻州市| 友谊县| 航空| 买车| 康乐县| 茌平县| 镇江市| 久治县| 九江市| 万安县| 青神县| 太白县| 东乌珠穆沁旗| 富民县| 五寨县| 共和县| 临海市| 满洲里市| 从江县| 乌拉特中旗| 安图县| 寿阳县| 南华县| 南康市| 惠州市| 城口县| 辽阳县| 报价| 景泰县| 汽车|