npm 包 @clbn/popper.js 使用教程

前言

在现代的 Web 开发中,弹出层的使用非常普遍。而要实现弹出层,有一个重要的前置操作:计算弹出层的位置,以使其准确地出现在指定的位置。这就是所谓的 popper。在本文中,我将介绍一个弹出层定位库——@clbn/popper.js 的使用方式。

什么是 popper?

在开始讲解 @clbn/popper.js 之前,我们需要先理解什么是 popper。

Popper,全称为 Popper.js,是一个轻量的、非侵入式的用于计算弹出层位置的库,它可以帮助我们把一个弹出层准确定位到特定的目标元素旁。

@clbn/popper.js 是什么?

@clbn/popper.js 是 Popper.js 的一个 fork 版本,它由 @clbn 团队维护。它是一种轻量的、可用于计算和定位弹出层和浮动菜单的库。

和原版的 Popper.js 相比,@clbn/popper.js 具有更好的性能和更低的内存占用。另外,它还提供了一些新的功能和选项,例如生成阴影遮罩、禁用默认的交互事件等。

@clbn/popper.js 安装

你可以使用 npm 安装 @clbn/popper.js:

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

安装成功后,你可以在项目中引入它:

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

@clbn/popper.js 使用

使用 @clbn/popper.js 生成弹出层的具体步骤如下:

1. 准备目标元素和弹出层

首先,你需要准备你的目标元素和弹出层。目标元素是弹出层的触发器,而弹出层是你要定位的元素。

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

2. 初始化 Popper 实例

在使用 @clbn/popper.js 之前,你需要先初始化一个 Popper 实例,通过传入目标元素和弹出层元素:

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

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

当你完成了以上步骤,你会看到弹出层已经固定在目标元素的下方,这是因为 Popper 默认会把弹出层放在目标元素下方、居中对齐。如果你想要改变它的位置,可以使用下面的选项。

3. 自定义选项

你可以手动设置弹出层相对于目标元素的位置,例如:

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

这里我们把弹出层放在目标元素上方。placement 这个选项也可以设置为 'right'、'bottom' 和 'left'。

然而,仅仅使用 placement 并不能得到你想要的完美位置。在一些复杂场景下,你可能需要更细致地控制弹出层的位置,这时候你就需要手动设置偏移量:

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

最后的结果是把弹出层放在目标元素的下方,并向下偏移 10 个像素。你还可以设置多个偏移量,例如:"1px, 2px"。

4. 更新 Popper 实例

在一些场景下,你需要弹出层实时更新它的位置,例如在窗口大小发生变化时。为了实现这个需求,你需要手动更新 Popper 实例:

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

注意,如果你在给 poper 传入节点时使用的是引用,而不是一个定位元素的 string,应使用刷新( refresh )而不是 更新( update )。

@clbn/popper.js 示例代码

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

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

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

总结

@clbn/popper.js 是一个非常好用的弹出层定位库。它可以帮助我们准确定位弹出、浮动、下拉式菜单等元素的位置,并提供多种选项对元素位置进行控制。在实际开发中,我们应该充分利用 @clbn/popper.js 的灵活性和强大功能,提升我们的 Web 开发效率和用户体验。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/600568d881e8991b448e49b2


猜你喜欢

  • npm 包 syg-throttle 使用教程

    前言 前端开发中,我们经常需要对一些高频率触发的事件进行节流处理,比如页面滚动、窗口大小改变等。针对这些需求,我们可以借助第三方库来实现节流处理。本文将介绍一个 npm 包 syg-throttle,...

    3 年前
  • npm 包 zafiro-validators 使用教程

    在前端开发过程中,表单验证是一个非常重要的部分。为了方便进行表单验证,我们可以使用 npm 包 zafiro-validators,它提供了各种常见的表单验证函数。

    3 年前
  • npm 包 mycron 使用教程

    什么是 mycron? mycron 是一个基于 Node.js 实现的定时任务管理工具。通过 mycron,你可以非常方便地创建、删除、查看和暂停定时任务,同时也提供了可定制化的任务超时处理、任务日...

    3 年前
  • npm 包 envarify 使用教程

    什么是 envarify? envarify 是一个 npm 包,它可以在 JavaScript 或 TypeScript 项目中,将环境变量从 process.env 注入到代码中,以便在代码中读取...

    3 年前
  • npm 包 splitwise 使用教程

    splitwise 是一个可以将一个数组分成多个相等的数组的 npm 包。在前端开发中,我们经常需要将一个数组拆成多个部分,以便进行一些批处理或者分页操作,这时使用 splitwise 就能很方便地实...

    3 年前
  • npm 包 graph-node-js 使用教程

    在前端开发中,数据可视化是一个非常重要的部分。而数据可视化所使用的图表,通常需要一个图形库来完成。在这里,我们将介绍一个非常好用的 npm 包 - graph-node-js。

    3 年前
  • npm 包 yanxxit-reskit 使用教程

    前言 如果您是前端工程师,您可能已经听说过 yanxxit-reskit,这是一个有用的 npm 包,可以帮助您快速搭建一个前端项目,并提供了一些工具和库。本文将介绍 yanxxit-reskit 的...

    3 年前
  • npm 包 config-x 使用教程

    随着前端项目越来越复杂,我们需要一个更好的方法来管理我们的项目配置。这时,npm 包 config-x 就非常有用了。它提供了一个简单易用的方法来管理配置信息,并且支持多个环境、多个配置文件等高级特性...

    3 年前
  • npm 包 isit-code-pennock 使用教程

    在前端开发中,我们经常需要对文本进行各种判断。isit-code-pennock 是一个 npm 包,用于检测文本是否为编程代码。 本文将介绍如何使用 isit-code-pennock 包,并提供示...

    3 年前
  • npm 包 ember-theme-changer-slawomir 使用教程

    前言 随着前端技术的发展,越来越多的开发者利用 npm 包来提升开发效率,其中一个比较常见的用法就是使用现有的组件库或主题库。而本篇文章要介绍的是一个名为 ember-theme-changer-sl...

    3 年前
  • npm 包 htmltoamp 使用教程

    在前端开发领域,常常需要将 HTML 页面转换为 AMP (Accelerated Mobile Pages)页面,这样可以提高页面加载速度和提升用户体验。然而手动编写 AMP 页面比较繁琐,需要遵循...

    3 年前
  • npm 包 gremlin-orm 使用教程

    前言 随着数据驱动的时代的到来,越来越多的应用程序需要处理图数据。而 对于前端开发者来说,gremlin-orm 是一个非常好的 npm 包,可以简化与 Gremlin 服务器交互的开发工作。

    3 年前
  • npm 包 the.types 使用教程

    在前端开发中,类型约束是非常重要的一项功能。尤其是在大型项目中,使用类型约束能够减少很多潜在的错误,提高代码的可维护性和可读性。在 JavaScript 中,虽然原本并没有类型约束的功能,但是通过使用...

    3 年前
  • npm 包 bodhi-js 使用教程

    前言 在前端开发中,我们经常会使用第三方库来帮助我们快速完成开发任务。npm 作为 JavaScript 的包管理工具,为我们提供了方便快捷的使用第三方库的方式。今天我们要介绍的是一个名为 bodhi...

    3 年前
  • npm 包 conkaa-soap 使用教程

    在前端开发中,我们经常会需要与 web service 进行交互。而 conkaa-soap 就是一个可以方便地进行 soap 调用的 npm 包。本篇文章将为你详细介绍 conkaa-soap 的使...

    3 年前
  • npm 包 node-red-contrib-predix-ts 使用教程

    介绍 node-red-contrib-predix-ts 是一个基于 Node-RED 的 npm 包,用于在工业环境下轻松构建基于 Predix 的 Web 应用程序。

    3 年前
  • npm 包 react-native-rn49-credit-card-input 使用教程

    本文将介绍如何使用 npm 包 react-native-rn49-credit-card-input 来创建一个基于 React Native 的信用卡输入组件。

    3 年前
  • npm 包 vacuumlabs-threading 使用教程

    简介 vacuumlabs-threading 是一个 npm 包,它提供了一种简单易用的方式来在浏览器中执行并行任务。它支持多种并发模式,并提供了一些有用的工具,例如线程的调度和结果的聚合。

    3 年前
  • npm 包 validation-msgs 使用教程

    在前端开发中,表单验证是必不可少的一项内容。然而,为了减少重复的代码编写,我们通常会使用一些成熟的第三方库来提高开发效率。 这篇文章介绍一款 npm 包 validation-msgs,它是一个轻量级...

    3 年前
  • npm 包 victoria-apiai 使用教程

    前言 随着人工智能技术的发展,人们开始设计和开发具有智能能力的应用程序。其中,自然语言处理(NLP)成为了人工智能应用中的一个非常热门的领域。自然语言处理技术可以帮助我们识别并处理人类自然语言,使得机...

    3 年前

相关推荐

    暂无文章