npm 包 @npm-polymer/iron-overlay-behavior 使用教程

简介

@npm-polymer/iron-overlay-behavior 是一个 Polymer 元素基础行为包,它提供了弹出框、模态框以及工具提示等常见的浮层组件的基础行为实现,使开发者可以方便地构建和自定义这些组件。

此文章将从安装和基础使用入手,深入介绍如何使用 @npm-polymer/iron-overlay-behavior 开发常见的浮层组件,并提供实例代码以便读者更好地学习和掌握。

安装和基础使用

安装

您可以通过 npm 安装 @npm-polymer/iron-overlay-behavior 包:

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

安装完成后,可以将组件引入到您的 Polymer 元素中进行使用。在 Polymer 3 中,您可以使用以下代码进行元素导入:

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

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

基础使用

@npm-polymer/iron-overlay-behavior 主要提供了以下五种组件的行为:iron-overlay, iron-dropdown, iron-dialog, iron-toastiron-tooltip,它们都可以很方便地使用这个行为实现。

这里以 iron-dialog 为例,假设你已经安装了 @npm-polymer/iron-overlay-behavior 包。下面的代码演示了如何使用 iron-dialog 组件:

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

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

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

上述代码中,我们在 MyElement 中使用了 IronOverlayBehavior,然后在 template 中使用 iron-dialog 元素,通过 opened 属性来控制弹出框的显示与隐藏,通过 slot="buttons" 实现了底部按钮的布局,并通过 _toggleDialog_closeDialog 两个方法来处理打开和关闭弹出框的逻辑。

组件 API

使用 @npm-polymer/iron-overlay-behavior 还可以通过它所提供的一些 API 来实现对组件进行自定义。

下面是一部分 IronOverlayBehavior 支持的 API:

1. attach

attach 用于将浮层组件插入到指定元素中。例如:

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

将会将组件插入到 someElement 中。

2. notifyResize

notifyResize 用于通知组件以响应布局变化,例如浏览器窗口大小变化事件等。当浮层组件的位置或大小发生变化时,应该调用该方法重新计算布局:

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

3. render

render 用于重新渲染组件,该方法主要用于在不更改组件状态的情况下重绘组件,例如更新了组件的样式或使用 JavaScript 更新元素内容:

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

自定义浮层组件

除了基础组件外,我们可以通过 @npm-polymer/iron-overlay-behavior 提供的行为对浮层组件进行定制。

以下是一个完整的自定义弹出框组件的示例:

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

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

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

在上述示例中,MyDialog 实现了一个简单的弹出框组件。它继承了 IronOverlayBehavior 行为,使用了 overlay 样式布局,在 template 代码中定义了组件的结构和样式。通过 properties 定义了组件的属性,包括弹出框的标题、是否带有背景模态层、是否取消和确认等。通过 _overlayStatusChanged 方法来处理状态改变后的逻辑,通过 ready 方法来监听在组件上调用 iron-overlay-behavior 所触发的 iron-overlay-canceled 事件,最后通过 _handleCancel_handleConfirm 方法分别处理取消和确认操作。

浮层组件属性

浮层组件同时也支持了 Polymer 基本属性的继承:

  • opened: 是否打开浮层。
  • disabled: 是否禁用浮层的打开功能。
  • no-overlap: 是否在浮层和触发器的交叉区域停止布局时覆盖,而不是移动浮层到更合适的地方。
  • no-auto-focus: 是否在打开浮层时自动设置焦点。
  • no-cancel-on-outside-click: 是否关闭浮层的打开状态,并且应该在外部单击事件时处理关闭。
  • no-cancel-on-esc-key: 是否关闭浮层的打开状态,并应该在按下 Esc 键时处理关闭。

总结

本篇文章介绍了 @npm-polymer/iron-overlay-behavior 的用法和常见 API,也提供了一个自定义浮层组件的示例作为参考。希望这篇文章对您学习和使用前端浮层组件有所帮助。

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


猜你喜欢

  • npm 包 fake-russian 使用教程

    前言 在前端开发中,我们经常需要使用随机数据来测试或展示功能,而 fake-russian 是一个可以生成随机俄语文本和名称的 npm 包,可以很好地满足我们的需求。

    3 年前
  • npm 包 codeschool-download 使用教程

    简介 codeschool-download 是一个可利用命令行下载 Code School 上的所有视频和相关资源的 npm 包。Code School 是一个在线编程课程平台,提供丰富的编程课程和...

    3 年前
  • npm 包 prettyjs 使用教程

    前言 前端开发中,格式化代码是一个常见的需求。代码格式化不仅使得代码更加美观整洁,而且能够提高代码可读性和可维护性。作为一款强大的代码格式化工具,prettyjs 能够满足你的需求。

    3 年前
  • npm包 @alepop/curry使用教程

    在前端开发中,函数式编程逐渐成为一种重要的编程思想。然而,JavaScript并不是一种真正的函数式编程语言,因此它缺少了一些函数式编程语言所具备的功能。其中,柯里化是函数式编程中的重要概念之一。

    3 年前
  • npm 包 vmock 使用教程

    什么是 vmock vmock 是一款基于 Vue.js 的 Mock 数据生成器,它可以帮助前端开发人员快速生成符合接口要求的假数据,从而更快地开发和调试前端应用程序。

    3 年前
  • npm 包 grunt-compare_json 使用教程

    简介 grunt-compare_json 是一个用于比较 JSON 文件差异的 Grunt 插件。使用该插件,我们可以方便的比较两个 JSON 文件之间的差异,查看其中的新增、删除、修改等信息,便于...

    3 年前
  • npm 包 lint-flow 使用教程

    前言 在前端开发中,代码的质量是至关重要的。随着代码量的增加,代码的可维护性和可读性变得越来越重要。为了解决这些问题,前端社区产生了许多的工具和框架。 其中,lint 工具成为了前端开发质量保证的重要...

    3 年前
  • npm 包 dat-download 使用教程

    什么是 dat-download 包? dat-download 是一个基于 Node.js 开发的 npm 包,其提供的功能是从 dat 协议网络中下载文件。dat 协议是一种点对点的文件分享协议,...

    3 年前
  • npm 包 react-native-cheerio 使用教程

    简介 react-native-cheerio 是一个基于 cheerio 的库,它可以让你在 React Native 应用中使用类似于 jQuery 的语法处理 HTML 和 XML 文档。

    3 年前
  • npm 包 vue-react-loader 使用教程

    前言 在前端开发中,有时需要在 Vue 组件中引用 React 组件,这时我们就需要使用一个中间件来实现,而 vue-react-loader 就是一个很好用的 npm 包,它可以让我们在 Vue 组...

    3 年前
  • npm 包 ngx-ahoy 使用教程

    前言 在 web 开发中,我们经常需要进行数据统计和用户行为分析。而 Ahoy.js 是一个非常流行的 JavaScript 库,可用于在前端页面中记录用户活动。ngx-ahoy 是一个基于 Angu...

    3 年前
  • npm 包 hyperapp-router 使用教程

    随着前端技术的不断发展,Web 应用也越来越复杂,单页面应用已经是前端开发的主流。在开发单页面应用时,需要解决前进、后退、刷新、页面跳转等问题。而 hyperapp-router 正是一款专门用于解决...

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

    简介 hubot-apiai 是一个让 Hubot 与 API.AI (现在改叫 Dialogflow) 对接的 npm 包。通过使用这个包,你可以让你的 Hubot 机器人更加聪明和智能,从而更加方...

    3 年前
  • npm包 react-3h 使用教程

    1. 简介 react-3h是一款基于react框架开发的高质量UI组件库,在前端开发中可以大大提高开发效率。react-3h提供了一系列的组件,例如Button、Modal、Table等等。

    3 年前
  • NPM 包 Simple-tcpscan 使用教程

    前言 在前端开发中,有时需要进行端口扫描,以确保我们的页面和服务都能正常运行。虽然这个任务听起来很简单,但是其实需要使用一些工具来完成。今天我们介绍一种便捷的工具——Simple-tcpscan。

    3 年前
  • npm 包 ui-e 使用教程

    在前端开发中,使用一些现成的UI组件库可以大幅提高开发效率,而 npm 包 ui-e 就是一个很好的选择。本文将详细介绍如何使用 npm 包 ui-e,以及在使用过程中需要注意的问题,并提供示例代码进...

    3 年前
  • npm 包 chained-function 使用教程

    在前端开发中,我们经常需要在一个函数中执行多个函数,或者跳出当前函数执行另一个函数。这时,我们可以使用 npm 包 chained-function 来有序的执行多个函数或者跳过当前函数。

    3 年前
  • npm 包 fs-delete-empty 使用教程

    在前端开发中,我们经常需要使用到文件系统操作,例如创建、读取、复制、删除等等。其中删除空文件夹是一个经常会用到的操作,而 npm 包 fs-delete-empty 就提供了一个删除空文件夹的工具,本...

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

    node-stdio 是一个 Node.js 模块,它可以让你在命令行中以交互式的方式使用你的 Node.js 程序。 它可以很方便地将标准输入和标准输出转换为 JavaScript 对象的形式,从而...

    3 年前
  • npm 包 git-chauthor 使用教程

    前言 在实际的前端开发过程中,经常需要在开发中使用 git 来管理版本,同时为了记录发版日志和贡献者等信息,我们需要在 commit 信息中加入这些信息。随着团队规模和项目复杂度的不断提高,commi...

    3 年前

相关推荐

    暂无文章