更新记录
1.0.0(2026-03-25) 下载此版本
初次更新
平台兼容性
uni-app(4.28)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| √ | √ | √ | √ | √ | √ | √ | √ | √ |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ |
其他
| 多语言 | 暗黑模式 | 宽屏模式 |
|---|---|---|
| × | × | √ |
弹幕组件 (danmu)
基于 Vue 开发的通用弹幕滚动组件,支持多轨道、随机内容、自动测宽、防重叠碰撞检测等功能。适用于直播互动、评论滚动等场景。
功能特性
- 🚀 多轨道并发:支持自定义轨道数量,弹幕在不同轨道独立运行。
- 🛡️ 智能防重叠:内置碰撞检测算法,确保同轨道内弹幕不会重叠。
- 📏 自动测宽:通过隐藏容器精准计算弹幕文本宽度,适配不同内容长度。
- 🎨 样式自定义:支持自定义字体大小、颜色、轨道间距、生成频率等。
- ⚡ 性能优化:动画结束后自动移除节点,避免内存泄漏。
安装与使用
将 danmu.vue 文件放入项目的组件目录(如 components/danmu),然后在页面中引入使用。
组件属性 (Props)
| 属性名 | 类型 | 默认值 | 必填 | 说明 |
|---|---|---|---|---|
barrageData |
Array | [] |
✅ 是 | 弹幕数据源数组。每项需包含 text和 avatar(图片路径)。 |
height |
Number | 200 |
❌ 否 | 弹幕容器的高度 (px)。 |
speed |
Number | 6 |
❌ 否 | 弹幕滚动速度。数值越大,滚动越快。 |
fontSize |
Number | 28 |
❌ 否 | 弹幕字体大小 (rpx)。 |
trackCount |
Number | 4 |
❌ 否 | 弹幕轨道的数量。 |
trackGap |
Number | 8 |
❌ 否 | 轨道之间的垂直间距 (px)。 |
color |
String | '' |
❌ 否 | 指定弹幕文字颜色。为空时随机从预设颜色中选择。 |
horizontalGap |
Number | 40 |
❌ 否 | 同轨道内,前后两条弹幕的最小水平间距 (px)。 |
generateInterval |
Number | 300 |
❌ 否 | 单条轨道生成新弹幕的时间间隔 (ms)。数值越小,弹幕越密集。 |
数据格式说明
barrageData 数组中的每个对象建议包含以下字段:
{
text: '弹幕显示的文字内容', // String, 必填
avatar: '/static/images/user.png' // String, 选填,头像图片路径
}
注意事项
- 容器宽度:组件会自动获取父容器宽度,请确保组件挂载时父容器已有明确宽度。
- 层级问题:组件默认
z-index: 9999且pointer-events: none,确保弹幕浮于上层且不阻挡点击事件。 - 性能建议:
generateInterval不宜设置过小,否则会导致 DOM 节点过多影响性能。trackCount根据容器高度合理设置,避免轨道过密导致文字看不清。
- 生命周期:组件在 onUnload 时会自动清除定时器,无需手动销毁。
样式覆盖
如果需要修改弹幕气泡的背景色、圆角等样式,可以通过外部 CSS 覆盖 .barrage-item 类:
/* 在页面 style 或全局 style 中 */
.barrage-item {
background-color: rgba(0, 0, 0, 0.6) !important;
border-radius: 10px !important;
}
基础用法
<danmu
:barrageData="barrageList"
color="#fff"
:fontSize="24"
:generateInterval="3000"
:height="150"
:horizontalGap="200"
:speed="30"
:trackCount="5"
/>
data
barrageList: [
{text: '弹幕内容', avatar: '头像链接'}
]
添加新弹幕
barrageList.push({text: '弹幕内容', avatar: '头像链接'})

收藏人数:
下载插件并导入HBuilderX
赞赏(0)
下载 2996
赞赏 24
下载 11589740
赞赏 1884
赞赏
京公网安备:11010802035340号