项目
版本

事件

您可以使用一组初始事件来初始化 OverlayScrollbars,这些事件可以随时使用 onoff 方法进行管理和调整。

OverlayScrollbars(
  document.querySelector("#myElement"),
  {},
  {
    updated(osInstance, onUpdatedArgs) {
      // ...
    },
  }
);

注意:每个事件都会接收到触发它的 instance 作为第一个参数。这是始终不变的。

事件名称 参数 描述
initialized instance 触发事件的实例对象。
在所有生成的元素、观察者及事件被添加到 DOM 后触发。
updated (instance, onUpdatedArgs) instance: 触发事件的实例对象。
onUpdatedArgs: 详细描述更新内容的对象。
注意: 如果触发了更新但没有任何变化,则不会分发此事件。
在实例更新后触发。
destroyed (instance, canceled) instance:触发事件的实例对象。
canceled: 一个布尔值,指示初始化是否被取消并因此销毁。
在所有生成的元素、观察者及事件从 DOM 中移除后触发。
scroll (instance, event) instance:触发事件的实例对象。
event: DOM 事件的原始事件参数。
通过滚动视口时触发。

TypeScript

// 事件名称与其监听器参数之间的映射。
type EventListenerArgs = {
  // 所有元素初始化并追加后触发。
  initialized: [instance: OverlayScrollbars];
  // 更新后触发。
  updated: [
    instance: OverlayScrollbars,
    onUpdatedArgs: OnUpdatedEventListenerArgs
  ];
  // 所有元素、观察者和事件销毁后触发。
  destroyed: [instance: OverlayScrollbars, canceled: boolean];
  // 滚动时触发。
  scroll: [instance: OverlayScrollbars, event: Event];
};

// 更新事件监听器的参数接口。
interface OnUpdatedEventListenerArgs {
  // 描述DOM中发生更改的提示。
  updateHints: {
    // 主元素的大小是否改变。
    sizeChanged: boolean;
    // 主元素的方向是否改变。
    directionChanged: boolean;
    // 内在高度行为是否改变。
    heightIntrinsicChanged: boolean;
    // 视口元素的溢出边缘(clientWidth/clientHeight)是否改变。
    overflowEdgeChanged: boolean;
    // 溢出量是否改变。
    overflowAmountChanged: boolean;
    // 溢出样式是否改变。
    overflowStyleChanged: boolean;
    // 滚动坐标是否改变。
    scrollCoordinatesChanged: boolean;
    // 是否进行了宿主元素的突变。
    hostMutation: boolean;
    // 是否进行了内容的突变。
    contentMutation: boolean;
  };
  // 已更改的选项。
  changedOptions: PartialOptions;
  // 更新是否在强制使缓存失效的情况下进行。
  force: boolean;
}
在本文档中