更新记录

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, 选填,头像图片路径
}

注意事项

  1. 容器宽度:组件会自动获取父容器宽度,请确保组件挂载时父容器已有明确宽度。
  2. 层级问题:组件默认 z-index: 9999pointer-events: none,确保弹幕浮于上层且不阻挡点击事件。
  3. 性能建议
    • generateInterval 不宜设置过小,否则会导致 DOM 节点过多影响性能。
    • trackCount 根据容器高度合理设置,避免轨道过密导致文字看不清。
  4. 生命周期:组件在 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: '头像链接'})

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

暂无用户评论。