npm 包 sunil-range-slider 使用教程

阅读时长 8 分钟读完

在前端开发中,处理数值范围是一项经常性任务。为了方便地提供给开发者一个可定制的可视化控件,sunil-range-slider 是一个非常优秀的 npm 包。它是一个易于使用的、高度可定制的滑块组件,它的使用方法简单明了。

安装 sunil-range-slider

使用 npm 进行安装:

使用 sunil-range-slider

在你的 HTML 文件中,你需要引入以下依赖:

然后,你可以在页面中添加一个 div 元素用于渲染滑块:

接下来,你需要在你的 JavaScript 文件中初始化 sunil-range-slider:

-- -------------------- ---- -------
--- ------ - --- -------------
  ------- ----------------
  ------- -
    ---- --
    ---- ----
    ----- --
    ----- ---
    --- --
  --
  ---------- -
    -------- -------- -------- ------- ---
    --------- -------- -------- ------- ---
    --------- -------- -------- ------- ---
    ------ -------- -------- ------- --
  --
  -------- -
    ----- ---------
    ------------ -------------
    ---------- ------
    --------- -----
    ---- -----
    ------ -----
    ----- -
  -
---

这里,我们使用 new RangeSlider() 创建一个新的对象,并传入 targetvaluescallbacksoptions 这 4 个参数。它们各自指定了:

  • target: 渲染控件的目标元素 id
  • values: 初始值
    • min:可选择最小值
    • max: 可选择最大值
    • step: 步长
    • from: 左滑块初始值
    • to: 右滑块初始值(只在 type 为 double 时可用)
  • callbacks: 事件回调函数,分别在拖动开始、拖动中、拖动结束和数值变化后调用
  • options: 配置项
    • type: 可选值为 'single''double',单滑块或双滑块
    • orientation: 可选值为 'horizontal''vertical',滑块方向
    • direction: 可选值为 'ltr''rtl',左到右或右到左
    • tooltips: 是否显示数值提示
    • bar: 是否绘制范围条(只在 type 为 double 时可用)
    • range: 是否选择数值范围(只在 type 为 double 时可用)
    • step: 步长

事件回调

sunil-range-slider 提供了 4 个事件回调函数,它们可以用于响应以下行为:

  • onStart: 当拖动开始时调用
  • onChange: 当拖动进行时调用
  • onUpdate: 当滑块数值更新时调用
  • onEnd: 当拖动结束时调用

每个回调函数都可以传入两个参数:

  • values: 当前滑块数值,格式如下
  • handle: 拖动操作的滑块,值为 'from''to'(只在 type 为 double 时用到)

例如:

高度可定制

在 sunil-range-slider 中,你可以定制所有的样式效果,包括颜色、圆角大小、背景、间距等等。例如,你可以使用以下 CSS 修改滑块的颜色:

-- -------------------- ---- -------
-- --- --
------- -
  ----------- ----
-
-- ----- --
--------- -
  ----------- --------- -- -- -----
-
-- -- --
----------------- -
  ----------- ----
-

示例代码

完整的示例代码:(你可以使用 npm i && npm start 运行此示例)

-- -------------------- ---- -------
--------- -----
------
------
  ----- ----------------
  ------------------------- ------------
  ----- ---------------- ------------------------------------------------------------------ --
  ------ ----------------
    ---- -
      -------- -----
    -
    ----------- -
      ----------- -----
      -------------- ----
      ------ -----
      ---------- -----
      ------------ ----
      -------- --- ----
      ----------- -------
    -
    ---------- -
      ----------- -----
      ------- -----
      -------------- ----
      ----------- - --- --- ------- -- -- -----
      ------- -----
      ------ -----
    -
    ----------------------- -
      ----------- -----
    -
    ----------------- -
      ----------- -----
      -------------- ----
      -------- ---
      -------- ------
      ------- -----
      ----- ----
      ------------ -----
      ----------- -----
      --------- ---------
      ---- ----
      ------ -----
    -
    ------- -
      ----------- -----
      -------------- -----
      ------- ----
      ----------- -----
    -
    --------- -
      ----------- -----
      -------------- -----
      ------- ----
      ---- -----
    -
  --------
-------
------
  ---- -------------------------
  ------- --------------------------------------------------------------------------
  ------- -----------------------
    --- ------ - --- -------------
      ------- ----------------
      ------- -
        ---- --
        ---- ----
        ----- --
        ----- ---
        --- --
      --
      ---------- -
        -------- -------- -------- ------- -
          ----------------- --------- ------- --------------------
        --
        --------- -------- -------- ------- -
          ----------------- --------- ------- --------------------
        --
        --------- -------- -------- ------- -
          ----------------- --------- ------ --------------------
        --
        ------ -------- -------- ------- -
          ----------------- --------- ------- --------------------
        -
      --
      -------- -
        ----- ---------
        ------------ -------------
        ---------- ------
        --------- -----
        ---- -----
        ------ -----
        ----- -
      -
    ---
  ---------
-------
-------

总之,sunil-range-slider 是一个非常优秀的 npm 包,它的使用方法简单明了,非常适合前端范围选择功能场景。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600557e781e8991b448d4f81

纠错
反馈