介绍
前一段时间介绍过一个弹幕播放器,效果还不错,今天介绍的是一个基于Vue的弹幕插件,非常简单实用,性能不错,Vue-Baberrage的定位是即开箱即用的小插件,推荐给大家!其中有一个Vue-Baberrage的重构版本,不过目前已经不更新了!
Github
https://github.com/superhos/vue-baberrage
https://github.com/superhos/vue-baberrage-plus
特性
- 容易使用
只需几行代码,简单配置即可使用。
- 高性能
过百条同屏弹幕依然能保持60FPS.
- 独立
弹幕数据部分交还给使用者自己管理,可以配合Vuex使用
安装使用
- npm安装
npm install vue-baberrage
- vue
import Vue from 'vue'
import { vueBaberrage } from 'vue-baberrage'
Vue.use(vueBaberrage)
or
const vueBaberrage = request('vue-baberrage').vueBaberrage
or
<script src="./dist/vue-baberrage.js"></script>
<div id="app">
<vue-baberrage:isShow= "barrageIsShow":barrageList = "barrageList":loop = "barrageLoop"
></vue-baberrage>
</div>
import { MESSAGE_TYPE } from 'vue-baberrage'
export default {
name: 'app',
data () {
return {
msg: 'Hello vue-baberrage',
barrageIsShow: true,
currentId : 0,
barrageLoop: false,
barrageList: []
}
},
methods:{
addToList (){
this.barrageList.push({
id: ++this.currentId,
avatar: "./static/avatar.jpg",
msg: this.msg,
time: 5,
type: MESSAGE_TYPE.NORMAL,
});
...
两步即可, 当有新的数据加入到barrageList,就会以弹幕形式展现出来,建议barrageList放在Vuex中
- 定制
<vue-babarrage
ref="babarrage"
:lanesCount="5"
:boxHeight= "stageHeight"
:isShow= "barrageIsShow"
:barrageList = "barrageList"
:loop = "barrageLoop"
:maxWordCount = "60"
:hoverLanePause = "hoverLanePause"
>
<template v-slot:default="slotProps">
<span style="color: #000">
{{slotProps.item.data.userName}}: {{slotProps.item.msg}}
</span>
</template>
</vue-babarrage>
通过组件的slot来自定义弹幕的样式。props.item的数据跟弹幕的数据一样。请注意,如果弹幕展现出来的宽度有所差异,请在弹幕数据中增加extraWidth来调整宽度。
{
id: ++this.currentId,
avatar: "./static/avatar.jpg",
msg: this.msg,
time: 5,
type: MESSAGE_TYPE.NORMAL,
extraWidth: 60
}
因为vue-baberrage只通过弹幕的文字来计算弹幕的长度。
总结
vue-baberrage就是一个小插件,可以用来做网页端的弹幕功能,弹幕评论是目前国内比较热门的方式,可以尝试使用!