Skip to content
OverlayScrollbarsVue

Solid 的 OverlayScrollbars

这是官方的 OverlayScrollbars Solid 包装器。

安装

sh
npm install overlayscrollbars-solid

同级依赖

Solid 的 OverlayScrollbars 有以下同级依赖

npm install overlayscrollbars
npm install solid-js

使用方法

第一步是将 CSS 文件导入到你的应用中:

ts
import "overlayscrollbars/overlayscrollbars.css";

注意:如果路径 'overlayscrollbars/overlayscrollbars.css' 无法使用,请使用 'overlayscrollbars/styles/overlayscrollbars.css' 作为 CSS 文件的导入路径。

组件

主要的入口是 OverlayScrollbarsComponent,可以在你的应用中作为一个组件使用:

jsx
import { OverlayScrollbarsComponent } from "overlayscrollbars-solid";

// ...

<OverlayScrollbarsComponent defer>示例内容</OverlayScrollbarsComponent>;

属性

该组件接受常规元素如 divspan 的所有属性。
此外,它还有自定义的可选属性:

  • element:接受一个 string,表示根元素的标签。
  • options:接受一个 object,表示 OverlayScrollbars 的选项。
  • events:接受一个 object,表示 OverlayScrollbars 的事件。
  • defer:接受一个 booleanobject。将初始化推迟到浏览器空闲时。

注意:强烈建议在可能的情况下使用 defer 选项,将初始化推迟到浏览器的空闲期。

jsx
// 示例用法
<OverlayScrollbarsComponent
  element="span"
  options={{ scrollbars: { autoHide: "scroll" } }}
  events={{
    scroll: () => {
      /* ... */
    },
  }}
  defer
/>

Ref

OverlayScrollbarsComponentref 将为你提供一个对象,通过它你可以访问 OverlayScrollbars 的 实例 和组件的根 元素
ref 对象有两个属性:

  • osInstance:一个返回 OverlayScrollbars 实例的函数。
  • getElement:一个返回根元素的函数。
jsx
// 示例用法
import type { OverlayScrollbarsComponentRef } from "overlayscrollbars-solid";

const Component = () => {
  let ref: OverlayScrollbarsComponentRef | undefined;

  return <OverlayScrollbarsComponent ref={(r) => (ref = r)} />;
};

原语

如果 OverlayScrollbarsComponent 不够用,你也可以使用 createOverlayScrollbars 原语:

jsx
import { createOverlayScrollbars } from "overlayscrollbars-solid";

// 示例用法
const Component = () => {
  let div;
  const [params, setParams] = createStore({ options, events, defer });
  const [initialize, instance] = createOverlayScrollbars(params);

  /**
   * 或者:
   *
   * const [params, setParams] = createSignal({});
   * const [initialize, instance] = createOverlayScrollbars(params);
   *
   * 或者:
   *
   * const [options, setOptions] = createSignal();
   * const [events, setEvents] = createSignal();
   * const [defer, setDefer] = createSignal();
   * const [initialize, instance] = createOverlayScrollbars({
   *   options,
   *   events,
   *   defer,
   * });
   *
   */

  onMount(() => {
    initialize({ target: div });
  });

  return <div ref={div} />;
};

该原语用于高级用法,允许你控制整个初始化过程。如果你想将其与其他插件集成,这将非常有用。

参数

参数是可选的,类似于 OverlayScrollbarsComponent。 它是一个具有可选属性的 object

  • options:接受一个 object,表示 OverlayScrollbars 的选项。
  • events:接受一个 object,表示 OverlayScrollbars 的事件。
  • defer:接受一个 booleanobject。将初始化推迟到浏览器空闲时。

注意:该对象可以是普通对象、storesignal 对象。这也适用于所有字段。

返回值

createOverlayScrollbars 原语返回一个包含两个值的 tuple

  • 第一个值是 initialization 函数,它接受一个参数,即 InitializationTarget
  • 第二个值是一个函数,返回当前的 OverlayScrollbars 实例或未初始化时返回 null

许可证

MIT