|
3 hafta önce | |
---|---|---|
.. | ||
README.md | 3 hafta önce | |
danmakuManager.vue | 3 hafta önce |
<template>
<danmakuManager
:danmakuList="danmakuList"
:height="200"
:infinite="true"
:speed="80"
@danmakuComplete="onDanmakuComplete"
></danmakuManager>
</template>
<script setup>
import danmakuManager from "@/components/danmakuManager/danmakuManager.vue"
const danmakuList = ref([
{
text: "晨曦微露,阳光洒满大地",
avatar: "头像URL"
},
{
text: "守护果树,收获美好",
avatar: null
}
])
const onDanmakuComplete = (id) => {
console.log('弹幕播放完成:', id)
}
</script>
参数 | 类型 | 默认值 | 说明 |
---|---|---|---|
danmakuList | Array | [] | 弹幕数据列表 |
height | Number | 200 | 容器高度(px) |
infinite | Boolean | true | 是否无限循环 |
speed | Number | 100 | 弹幕滚动速度(px/s) |
trackCount | Number | 8 | 弹幕轨道数量 |
spacing | Number | 20 | 弹幕间距 |
{
text: "弹幕文本内容",
avatar: "头像URL" // 必填,如果为null会使用默认头像
}
事件名 | 参数 | 说明 |
---|---|---|
danmakuComplete | id | 弹幕播放完成时触发 |
组件暴露了以下方法供父组件调用:
addDanmaku(text, avatar)
- 动态添加弹幕clearDanmakus()
- 清空所有弹幕startDanmakuAnimation()
- 开始弹幕动画stopDanmakuAnimation()
- 停止弹幕动画<!-- 无限滚动 -->
<danmakuManager :infinite="true" :danmakuList="danmakuList"></danmakuManager>
<!-- 单次滚动 -->
<danmakuManager :infinite="false" :danmakuList="danmakuList"></danmakuManager>
弹幕组件使用8个不同的轨道,每个轨道有不同的背景色:
可以通过修改CSS来自定义轨道样式。
width: fit-content
实现自适应