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

歡迎訪問 生活随笔!

生活随笔

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

vue

vue.js使用audio标签实现聊天语音条组件

發布時間:2024/3/24 vue 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vue.js使用audio标签实现聊天语音条组件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

效果演示

<template><div class="audio__wrap"><audio controls :src="src" ref="audioPlayer" style="display:none"></audio><div class="self__audio"><div class="audio__duration">{{duration}}"</div><div class="audio__trigger" @click="playAudioHandler"><div:class="{'wifi-symbol':true,'wifi-symbol--avtive':isPlaying}"><div class="wifi-circle first"></div><div class="wifi-circle second"></div><div class="wifi-circle third"></div></div></div></div></div> </template> <script> export default {data() {return {isPlaying: false,duration: ""};},props: {src: {type: String,required: true}},methods: {playAudioHandler() {this.isPlaying = !this.isPlaying;const player = this.$refs.audioPlayer;if (this.isPlaying) {player.load();player.play();} else {player.pause();}}},mounted() {const player = this.$refs.audioPlayer;player.load();const vm = this;player.oncanplay = function() {vm.duration = Math.ceil(player.duration);};} }; </script> <style lang="scss" scoped> .audio__wrap {.self__audio {.audio__duration {display: inline-block;line-height: 32px;height: 32px;padding-right: 6px;color: #888888;}.audio__trigger {cursor: pointer;vertical-align: top;display: inline-block;line-height: 32px;height: 32px;width: 100px;background-color: #6dff5f;border-radius: 4px;position: relative;.wifi-symbol {position: absolute;right: 4px;top: -8px;width: 50px;height: 50px;box-sizing: border-box;overflow: hidden;transform: rotate(-45deg) scale(0.5);.wifi-circle {border: 5px solid #999999;border-radius: 50%;position: absolute;}.first {width: 5px;height: 5px;background: #cccccc;top: 45px;left: 45px;}.second {width: 25px;height: 25px;top: 35px;left: 35px;}.third {width: 40px;height: 40px;top: 25px;left: 25px;}}.wifi-symbol--avtive {.second {animation: bounce 1s infinite 0.2s;}.third {animation: bounce 1s infinite 0.4s;}}}@keyframes bounce {0% {opacity: 0; /*初始狀態 透明度為0*/}100% {opacity: 1; /*結尾狀態 透明度為1*/}}} } </style>

總結

以上是生活随笔為你收集整理的vue.js使用audio标签实现聊天语音条组件的全部內容,希望文章能夠幫你解決所遇到的問題。

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