日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > vue >内容正文

vue

Vue2.0+SVG实现音乐播放圆形进度条组件,传入实时百分比实现圆圈进度动画效果

發布時間:2023/12/31 vue 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Vue2.0+SVG实现音乐播放圆形进度条组件,传入实时百分比实现圆圈进度动画效果 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

vue2.0+SVG實現音樂播放圓形進度條組件,傳入實時百分比實現圓圈進度動畫效果


需求分析:

類似于大多數音樂播放器中等mini播放器控制按鈕,顯示播放進度,實時更新進度。

progress-circle.vue源碼:

<template><div class="progress-circle"><svg :width="radius" :height="radius" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg"><circle class="progress-background" r="50" cx="50" cy="50" fill="transparent"/><circle class="progress-bar" r="50" cx="50" cy="50" fill="transparent" :stroke-dasharray="dashArray":stroke-dashoffset="dashOffset"/></svg><slot></slot></div> </template><script type="text/ecmascript-6">export default {props: {radius: {type: String,default: '0.32rem'},percent: {type: Number,default: 0}},data() {return {dashArray: Math.PI * 100}},computed: {dashOffset() {return (1 - this.percent) * this.dashArray}}} </script><style scoped lang="stylus" rel="stylesheet/stylus">.progress-circleposition: relativecirclestroke-width: 0.16remtransform-origin: center&.progress-backgroundtransform: scale(0.9)stroke: rgba(255, 205, 49, 0.5)&.progress-bartransform: scale(0.9) rotate(-90deg)stroke: #ffcd32 </style>


本組件沒有使用本地資源,可直接只用,在父組件中導入并注冊后,調用組件。

父組件DOM結構:

<div class="control"><progress-circle :radius="radius" :percent="percent"><i @click.stop="togglePlaying" class="icon-mini" :class="iconMiniPlay"></i></progress-circle></div>


解釋:其中<i></i>中引用的是制作的css圖標(播放/暫停按鈕),通過iconMiniPlay決定展現是播放按鈕還是暫停按鈕(本例子只介紹原型進圖條組件的開發和使用,因此不多介紹),設置圖標的大小務必注意與radius一致,不明白為什么的話建議嘗試一下,實踐出真知噢。

需要像組件傳入的參數:

svg圈圈大小radius以及歌曲播放進度百分比percent,兩個數據來源:


解釋:

percent通過audio標簽的currentTime獲取,duration為接口獲取的當前歌曲總長度,相除則為當前進度百分比。

radius可根據自身開發時所需規格設置(其他布局、樣式之類的也是)

父組件樣式(本人使用stylus):

.controlposition absolutetop 0.35remright 1remcolor $color-theme-d.icon-minifont-size: 0.64remposition: absoluteleft: 0top: 0
最近可以變聽歌邊開發了.....

開發完并運用此組件,設置適當的布局、樣式后的效果:




總結

以上是生活随笔為你收集整理的Vue2.0+SVG实现音乐播放圆形进度条组件,传入实时百分比实现圆圈进度动画效果的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。