npm 包 Ember-Popper 使用教程

前言

Ember.js 是一个流行的 JavaScript 前端框架,旨在提高开发者效率,特别是在构建大型 web 应用程序时。Ember-Popper 是一个 Ember.js 组件,它提供了对 Popper.js 库的集成,使用 Popper.js 实现弹出框、下拉菜单等交互组件非常方便。

在本文中,我们会对 Ember-Popper 进行详细介绍,并展示如何在 Ember.js 应用程序中使用它。

什么是 Popper.js

Popper.js 是一个弹出框和 tooltip 库,它使用现代 web 浏览器(包括 IE 11)的原生 API,如 getBoundingClientRect()requestAnimationFrame()。它是一个项目感知的库,用于在页面布局和内容之间精确定位弹出框。

Ember-Popper 是什么

Ember-Popper 是一个 Ember.js 附加组件,提供对 Popper.js 库的集成,并为创建自定义交互组件提供了一流的支持。它可以用于创建下拉菜单、Popover 等交互组件。

如何安装

要使用 Ember-Popper,您需要先安装它。您可以使用以下命令在 Ember.js 应用程序中进行安装:

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

安装后,您可以使用 ember-popover 组件创建弹出框。

如何使用

要在 Ember.js 应用程序中使用 Ember-Popper,您需要在模板中使用 ember-popover 组件。在以下示例中,我们向用户展示如何使用 Ember-Popper 创建一个下拉菜单:

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

在上面的示例中,我们使用 ember-popover 组件包装了一个按钮,并将 $triggerType 属性设置为 click。当用户点击按钮时,下拉菜单出现在页面上。当用户再次单击按钮时,下拉菜单消失。

弹出窗口的内容嵌套在 EmberPopper 组件中。我们使用了 as |popover| 命名的块参数,并在 AffinityEnginePopoverMenu 组件中将它传递给 @popover 属性。这些组件在我们下面将展示如何创建。

Ember-Popper API

在使用 Ember-Popper 时,您需要了解以下属性和方法:

属性

  • @triggerType:弹出框的触发方式。可选值有 clickhoverfocus

  • @popperPlacement:弹出框和触发器之间的位置关系。可选值有 top-starttoptop-endleft-startleftleft-endright-startrightright-endbottom-startbottombottom-end

  • @popperModifiers:Popper.js 的修改器数组。这些修改器可以在 Popper.js 中进行配置。

  • @onToggle:每次弹出框打开或关闭时都会执行的函数。

  • @onUpdate:每次 Popper.js 更新位置时都会执行的函数。

  • @delayShow:在弹出框出现之前,等待多少毫秒。

  • @delayHide:弹出框隐藏之前等待多少毫秒。

  • @showOnRender:设置为 true,表示弹出框应该在它第一次渲染时就显示。

  • @hideOnRender:设置为 true,表示弹出框应该在它第一次渲染时就隐藏。

  • @tagName:弹出框的 HTML 标签名称。默认为 div

方法

  • show(): 显示弹出框。

  • hide(): 隐藏弹出框。

  • toggle(): 在显示和隐藏之间切换弹出框。

  • update(): 更新位置和大小。

创建自定义组件

除了使用 Ember-Popper 中提供的弹出框组件之外,您还可以根据自己的需求创建自定义组件。接下来,我们将介绍如何使用 Ember-Popper 创建一个下拉菜单组件:

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

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

在上面的示例中,我们创建了一个简单的列表,其中菜单项在传递的 @options 属性中定义。

接下来,我们将创建一个叫做 AffinityEnginePopoverMenu 的 Ember.js 组件,用于显示该列表:

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

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

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

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

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

AffinityEnginePopoverMenu 组件中,我们使用了一个名为 isShown 的私有属性来跟踪该组件的显示状态,并将 options 属性定义为此组件所需的数据。

另外,我们还创建了一个 toggle() 方法,该方法用于切换弹出菜单的显示状态,并且该方法是由我们上面使用的 ember-popover 组件中的按钮触发的。

结论

Ember-Popper 是一个优秀的弹出框和交互组件库,它简化了弹出框和 tooltip 的创建和管理。本文介绍了如何在 Ember.js 应用程序中使用 Ember-Popper,如何创建自定义交互组件。

我们希望您能够通过本文对 Ember-Popper 有更深入的了解,并在实际开发中灵活应用。如果您有任何疑问或问题,请在下方评论区留言,我们会尽快回复您。

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


猜你喜欢

  • npm 包 @bolt/tools-list-sort 使用教程

    简介 @bolt/tools-list-sort 是一款便捷的 npm 包,可以为你的前端项目提供列表排序的功能。这个包非常轻巧,使用方便,可以直接在项目中引入使用。

    4 年前
  • npm 包 stickyfilljs 使用教程

    在前端开发中,实现某些功能时会用到固定某个元素在页面中位置不变,滚动过程中一直保持在页面固定位置上。这时候我们就需要使用 stickyfilljs,一种实现CSS sticky效果的 JavaScri...

    4 年前
  • npm 包 @bolt/tools-map-sort 使用教程

    介绍 @bolt/tools-map-sort 是一个可用于对 JavaScript Map 对象进行排序的 npm 包。本文将详细介绍如何在前端开发中使用该包,以及它的学习和指导意义。

    4 年前
  • npm 包 @bolt/tools-no-select 使用教程

    在前端开发中,有时我们需要在特定情况下禁止用户选择页面中的文本,这时候我们可以使用 @bolt/tools-no-select,这是一个可以通过 npm 安装的工具包。

    4 年前
  • npm 包 gumshoejs 使用教程

    简介 gumshoejs 是一个 JavaScript 库,它提供了一种简单的方式来在页面上跟踪当前滚动到的位置。它可以用于创建自定义的滚动跟踪功能,比如在单页应用程序中跟踪当前导航菜单项、高亮当前阅...

    4 年前
  • npm 包 @bolt/tools-poly-fluid-sizing 使用教程

    本文章将介绍如何使用 npm 包 @bolt/tools-poly-fluid-sizing 实现页面的流式布局。@bolt/tools-poly-fluid-sizing 是一个解决响应式布局固定宽...

    4 年前
  • npm 包 preact-markup 使用教程

    简介 在前端开发中,HTML 是网页的基础语言,而 preact-markup 则是一款基于 Preact 的 HTML 模板渲染引擎。preact-markup 具有渲染速度快、轻量化等特点,非常适...

    4 年前
  • npm 包 @bolt/tools-px-to-rem 使用教程

    前言 在前端开发中,尺寸的转换一直都是一个需要注意的地方,不同设备的屏幕大小、分辨率以及用户设定的字体大小都会影响到页面的展示效果。因此,为了适应不同屏幕的显示效果,我们需要对 CSS 尺寸单位进行转...

    4 年前
  • npm 包 @bolt/tools-sassy-maps 使用教程

    前言 在前端开发中,我们经常需要使用样式变量,如颜色、字体大小等,为了方便维护这些变量,我们可以使用 Sass 来预处理 CSS。在 Sass 中,我们还可以使用 map(映射)来管理变量,而 @bo...

    4 年前
  • npm 包 @bolt/tools-scrolling 使用教程

    在前端开发中,滚动效果是一个常见的需求。然而,实现滚动效果常常需要复杂的代码和实现细节,对于普通开发者来说难度较大。此时,npm 包 @bolt/tools-scrolling 就成为了一个非常好的解...

    4 年前
  • npm 包 @bolt/components-headline 使用教程

    介绍 @bolt/components-headline 是一个 Bolt Design System 中的 npm 包,提供了一些常见的标题样式,使用此包可以方便快捷地实现统一的标题样式,提高前端代...

    4 年前
  • npm 包 wc-context 使用教程

    在 Web Components 中,组件之间的通讯是非常重要的。然而,由于不同库之间通常存在不兼容性,开发者需要耗费大量时间去解决这个问题。这时,npm 包 wc-context 就能派上用场了!本...

    4 年前
  • npm 包 @bolt/tools-spacing 使用教程

    前言 在前端开发中,布局往往是非常重要的,对于不同的元素之间的距离和排列方式,我们通常需要采用不同的方式。而在使用 CSS 进行布局时,调整元素与元素之间的空间往往是一种比较繁琐的过程。

    4 年前
  • npm 包 @bolt/global 使用教程

    在前端开发中,我们经常使用的一些工具或者代码库,可以通过 npm 包的形式封装起来供我们使用。其中,@bolt/global 是一个非常实用的 npm 包,提供了一些全局的 CSS 样式和 JavaS...

    4 年前
  • npm 包 @bolt/components-action-blocks 使用教程

    前言 在前端开发中,经常需要使用一些 UI 组件。而在许多情况下,自己编写的组件需要再次使用,这时候就需要将这些组件封装成 npm 包,以便于他人使用。 本文就是要介绍一个非常优秀的 UI 组件 np...

    4 年前
  • npm 包 @bolt/tools-strip-unit 使用教程

    在前端开发中,涉及到长度、宽度、高度等属性时,通常是使用带有单位的 CSS 属性值,例如 width: 100px; 或 height: 50vh;。然而,在一些情况下,我们可能需要将这些属性值去掉单...

    4 年前
  • npm 包 @bolt/components-background 使用教程

    简介 在前端开发中,使用各种框架和库进行快速的开发已经变得非常常见。NPM(Node.js 包管理器)是一个广泛使用的包管理器,允许开发者轻松地安装、更新和管理依赖项。

    4 年前
  • npm 包 @bolt/components-background-shapes 使用教程

    前言 在前端开发中,我们经常使用到各种 npm 包来辅助我们完成工作。其中,@bolt/components-background-shapes 是一个非常强大的包,它可以帮助我们快速地实现各种漂亮的...

    4 年前
  • npm 包 @bolt/tools-text-contrast 使用教程

    随着移动设备的广泛使用,网站设计必须考虑到各种显示设备的不同条件。其中一个重要的方面是文本对比度,可读性是一个好的使用体验的必要条件。但是,当我们在应用中使用不同颜色和字体时,很难确保它们在不同的背景...

    4 年前
  • npm包@bolt/components-grid使用教程

    前言 在前端开发中,使用框架来构建网页和应用程序变得越来越普遍。其中的一部分原因是因为现代框架通常提供了对常见 UI 组件的支持,使得开发人员不必从头编写组件,可以更快地构建出网页,并提高网页的可重用...

    4 年前

相关推荐

    暂无文章