Skip to content

固定弹幕在容器顶部

描述

本章节将介绍如何将弹幕固定在某一位置,以 topleft 这两个位置举例。由于我们需要自定义位置,所以我们需要使用高级弹幕的能力。

提示

以下这些代码你都可以复制,然后粘贴在在线 demo 的控制台上查看效果。

将弹幕固定在顶部

1. 固定在最顶部的位置:

ts
// 这条弹幕将会居中距离顶部 10px 的位置悬停 5s
manager.pushFlexibleDanmaku('弹幕内容', {
  duration: 5000,
  direction: 'none',
  position(danmaku, container) {
    return {
      x: `50% - ${danmaku.getWidth() / 2}`,
      y: 10, // 离容器顶部的距离为 10px
    };
  },
});

2. 固定在顶部第 2 条轨道上:

ts
// 这条弹幕将会在第二条轨道居中的位置悬停 5s
manager.pushFlexibleDanmaku('弹幕内容', {
  duration: 5000,
  direction: 'none',
  position(danmaku, container) {
    // 渲染在第 3 条轨道中
    const { middle } = manager.getTrack(2).location;
    return {
      x: `50% - ${danmaku.getWidth() / 2}`,
      y: middle - danmaku.getHeight() / 2,
    };
  },
});

将弹幕固定在左边

ts
// 这条弹幕将会在容器中间距离左边 10px 的地方停留 5s
manager.pushFlexibleDanmaku('弹幕内容', {
  duration: 5000,
  direction: 'none',
  position(danmaku, container) {
    // 渲染在第 3 条轨道中
    const { middle } = manager.getTrack(2).location;
    return {
      x: 10,
      y: `50% - ${danmaku.getHeight() / 2}`,
    };
  },
});

Released under the MIT License.