最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于vue-element組件實(shí)現(xiàn)音樂(lè)播放器功能

 更新時(shí)間:2018年05月06日 16:52:40   作者:簡(jiǎn)書(shū)辣子雞  
這篇文章主要介紹了基于vue-element組件實(shí)現(xiàn)音樂(lè)播放器功能,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧

最近在寫(xiě)一個(gè)基于 github-page 和 gist 的博客, 想加個(gè)音樂(lè)播放器, 做了一個(gè)早上, 發(fā)出來(lái)分享一下

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

效果

使用到的組件

element組件

  • 布局 Layout
  • 按鈕 Button
  • 滑塊 Slider
  • 進(jìn)度條 Progress
  • 彈出框 Popover

html5組件

audio

實(shí)現(xiàn)代碼

更詳細(xì)的實(shí)現(xiàn)可以看 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>

總結(jié)

以上所述是小編給大家介紹的基于vue-element組件實(shí)現(xiàn)音樂(lè)播放器功能,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的!

相關(guān)文章

  • Vue按照順序?qū)崿F(xiàn)多級(jí)彈窗效果 附Demo

    Vue按照順序?qū)崿F(xiàn)多級(jí)彈窗效果 附Demo

    這篇文章主要介紹了Vue按照順序?qū)崿F(xiàn)多級(jí)彈窗效果 附Demo,通過(guò)實(shí)例代碼介紹了單個(gè)彈窗和多級(jí)彈窗的實(shí)現(xiàn)方法,感興趣的朋友跟隨小編一起看看吧
    2024-05-05
  • 前端虛擬滾動(dòng)列表實(shí)現(xiàn)代碼(vue虛擬列表)

    前端虛擬滾動(dòng)列表實(shí)現(xiàn)代碼(vue虛擬列表)

    前端的性能瓶頸那就是頁(yè)面的卡頓,當(dāng)然這種頁(yè)面的卡頓包含了多種原因,下面這篇文章主要給大家介紹了關(guān)于前端虛擬滾動(dòng)列表實(shí)現(xiàn)的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-06-06
  • vue路由事件beforeRouteLeave及組件內(nèi)定時(shí)器的清除方法

    vue路由事件beforeRouteLeave及組件內(nèi)定時(shí)器的清除方法

    今天小編就為大家分享一篇vue路由事件beforeRouteLeave及組件內(nèi)定時(shí)器的清除方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-09-09
  • vue+axios實(shí)現(xiàn)文件下載及vue中使用axios的實(shí)例

    vue+axios實(shí)現(xiàn)文件下載及vue中使用axios的實(shí)例

    這篇文章主要介紹了vue+axios實(shí)現(xiàn)文件下載及vue中使用axios的實(shí)例,需要的朋友可以參考下
    2018-09-09
  • vue中的keep-alive用法指南

    vue中的keep-alive用法指南

    keep-alive是Vue中的一個(gè)內(nèi)置組件,用于緩存非活動(dòng)組件實(shí)例,避免重復(fù)渲染,優(yōu)化性能,本文給大家介紹vue中的keep-alive用法指南,感興趣的朋友一起看看吧
    2024-10-10
  • vue項(xiàng)目不能使用localhost訪問(wèn)的解決

    vue項(xiàng)目不能使用localhost訪問(wèn)的解決

    這篇文章主要介紹了vue項(xiàng)目不能使用localhost訪問(wèn)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • vue3中的數(shù)據(jù)劫持的最新實(shí)現(xiàn)方案的proxy示例詳解

    vue3中的數(shù)據(jù)劫持的最新實(shí)現(xiàn)方案的proxy示例詳解

    Vue3中使用Proxy實(shí)現(xiàn)數(shù)據(jù)劫持,解決了Vue2中數(shù)組和對(duì)象劫持的遺留問(wèn)題,Proxy可以修改某些操作的默認(rèn)行為,通過(guò)get和set方法實(shí)現(xiàn)數(shù)據(jù)的劫持和保護(hù)機(jī)制,感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • Vue 實(shí)現(xiàn)定時(shí)刷新與自動(dòng)更新(示例詳解)

    Vue 實(shí)現(xiàn)定時(shí)刷新與自動(dòng)更新(示例詳解)

    在現(xiàn)代 Web 開(kāi)發(fā)中,定時(shí)刷新頁(yè)面或定時(shí)更新數(shù)據(jù)是一種常見(jiàn)的需求,尤其是在需要與服務(wù)器進(jìn)行定時(shí)通信或者展示實(shí)時(shí)數(shù)據(jù)的場(chǎng)景下,Vue.js 提供了簡(jiǎn)單而有效的方法來(lái)實(shí)現(xiàn)定時(shí)刷新和自動(dòng)更新,本文將介紹幾種常見(jiàn)的定時(shí)刷新方式、適用場(chǎng)景、優(yōu)缺點(diǎn)以及性能考慮
    2024-11-11
  • vue刷新后瞬間閃爍,無(wú)法解析的問(wèn)題

    vue刷新后瞬間閃爍,無(wú)法解析的問(wèn)題

    這篇文章主要介紹了vue刷新后瞬間閃爍,無(wú)法解析的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 使用Axios攔截器中止Vue請(qǐng)求的步驟詳解

    使用Axios攔截器中止Vue請(qǐng)求的步驟詳解

    假設(shè)?App?的用戶可以在短時(shí)間內(nèi)進(jìn)行多個(gè)?API?調(diào)用,但您只想顯示上次調(diào)用的結(jié)果,之前正在進(jìn)行的請(qǐng)求變得無(wú)關(guān)緊要,在這種情況下,您可以利用?Axios?攔截器,本文給大家介紹了如何使用Axios攔截器中止Vue請(qǐng)求,需要的朋友可以參考下
    2023-11-11

最新評(píng)論

旬邑县| 临高县| 搜索| 齐齐哈尔市| 和硕县| 自贡市| 光山县| 贵州省| 永仁县| 陇川县| 宜丰县| 玛沁县| 汉源县| 镇安县| 随州市| 桐梓县| 蛟河市| 普宁市| 大姚县| 博野县| 睢宁县| 沂南县| 涟源市| 阳西县| 阿城市| 丹阳市| 文成县| 海盐县| 新绛县| 丰台区| 黄陵县| 武定县| 蓝山县| 凤阳县| 涡阳县| 屯留县| 青铜峡市| 特克斯县| 崇礼县| 乐陵市| 葵青区|