事件
您可以使用一组初始事件来初始化 OverlayScrollbars
,这些事件可以随时使用 on
和 off
方法进行管理和调整。
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;
}