vue中v-html的内容替换和事件绑定

我们现在要处理一种情况,后台输出了一些html数据,但是希望将audio默认的标签,换成一个喇叭图片,类似百度翻译的发音图标。并能够播放音频

20210504200101

替换audio标签为img

因为数据从后端api获取,所以我们获取数据后,用正则先替换audio为img并记录音频地址

template模板

 

script方法:

我们将audio的src音频地址,放到了img的data-audio-url中,以便后面点击事件可以获取到播放的资源。

你会看到我们的div下面还有一个隐藏的audio文件,后面我们会用到它。

 

事件绑定

如何让小喇叭图片可以播放呢?

其实很简单,我们获取到event,拿到此img之前绑定的data-audio-url,然后赋值给之前埋好的audio的src,让这个隐藏的audio播放即可。

 

img喇叭状态改变

现在喇叭在播放时不会动,我们希望播放时喇叭能够有播放动画。咋办,我们找来了一张gif图,在播放时切换它。并在播放停止后,切换回不同的小喇叭。

要实现这样的效果我们需要加一些代码

完活!还有优化空间,后续你们自己发挥把,拜拜

 

发表评论