npm 包 containers.js 使用教程

面试官:小伙子,你的代码为什么这么丝滑?

前言

在前端开发过程中,UI 组件和交互部分的处理和实现是必不可少的。而在处理这些东西时,往往会使用一些外部的工具库,以方便快速地实现功能。其中,containers.js 就是一款相对实用且适用范围广泛的一个库。

containers.js 是一个 JS 实用程序库,根据各种数据结构构建 DOM 元素以及创建动画效果。它提供了一些通用的基础容器结构,包括卡片、面板、窗口和更多。containers.js 是一个用于 Web 应用程序的完整前端 UI 库,帮助开发人员更快地构建自定义和精美的用户界面。

安装

你可以使用 npm 包管理器来安装 containers.js。在你的项目中,运行以下指令:

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

示例

下面是一个添加了 cards 和 panels 的基本示例。

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

你可以在你的 CSS 中添加以下代码:

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

这个例子中,我们创建了两个容器,一个 card 容器,一个 panel 容器,每个容器下又各自加入了一个添加按钮。而页内样式表处添加了样式,给容器和按钮等添加了美观的样式。

指南

基本容器

containers.js 提供了四个基本容器,它们分别是:

  1. .card-container
  2. .panel-container
  3. .window-container
  4. .modal-container

可以通过添加对应的 className 来为容器添加样式列表:

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

添加容器 Item

对于容器中的 Item,可以使用下面的代码来添加:

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

创建一个新的 Card 实例后,若想将它添加至容器中,则可按照以下方式进行操作:

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

该代码会将 Card 实例添加至 class 名为 .card-container 的节点中。其他容器也有类似的操作方式。

除了可以通过 description 方式创建实例内容外,你也可以通过直接将 HTML 结构插入类似以下的代码内来创建新实例:

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

其中,你需要使用 data-type 属性为容器指定类别。

配置

在创建新的容器实例时,它可以接收一个包含属性的对象。不同的容器类型可能有不同的属性。通用的属性包括:

  1. type:(必填)容器的类型
  2. header:(可选)头部的配置
    • title:标题
    • action:操作项的配置
      • text:文字
      • icon:图标
      • callback:回调函数
  3. content:(可选)内容

例如,对于 Card 容器实例,你可以按照如下方式进行实例化:

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

其中,我们设置了 Card 的标题、按钮以及容器内容。

自定义容器

如果你想要在容器中添加自定义元素、事件处理程序、样式等,则可以在创建容器时为其添加新的 CSS 类、事件监听器等。

自定义 CSS 类

你可以向容器中添加自定义 CSS 类名。例如,如果你想要将一些特定的元素添加到 /css/containers.css 中提供的基本样式之上,则可以按照如下方式进行操作:

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

在实例化新的 Card 对象时,我们可以定义新的 type 值以进行新容器的扩展和自定义:

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

容器实例化后,可以将 my-card 添加到 .card-container 中。

自定义事件监听器

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

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

可以看到,在创建新容器时,我们可以使用 onClick 方法为容器添加自定义事件监听器。

动画效果

containers.js 还提供了一些默认的动画效果,可以实现一些简单的旋转、翻转和移动效果。

动画效果 Type

目前支持的动画 Type 如下:

  • spin: 按钮呈现顺时针菊花状旋转
  • rotate: 按钮在垂直方向上执行翻转效果
  • slide: 按钮执行带缓冲的水平平移效果

按钮动画

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

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

卡片动画

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

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

可以看到,这个容器在添加到页面时执行了平移效果,而当我们点击容器中的按钮时,它又执行了翻转效果。

更多关于 containers.js 的特性和使用方法,请参考官网相关文档。

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


猜你喜欢

  • 如何在 Hapi 中使用 Socket.io 实现实时通信

    Socket.io 是一个基于 Node.js 的实时通信框架,可方便地实现服务端和客户端之间的实时通信。而 Hapi 是一个基于 Node.js 的 Web 开发框架,它提供了一些有用的工具和插件,...

    1 小时前
  • 在 ES9 中使用 obj.constructor() 函数创建对象

    在 JavaScript 中,我们通常使用对象字面量或构造函数来创建对象。但在 ES9 中,我们可以使用 obj.constructor() 函数来创建对象。这种方式可以让我们更加灵活地创建对象,并且...

    1 小时前
  • 如何使用 Mocha 测试 AngularJS 应用?

    Mocha 是一个流行的 JavaScript 测试框架,可针对多种应用程序和库进行测试。在前端开发领域中,测试是至关重要的一环,特别是对于 AngularJS 应用程序。

    1 小时前
  • Next.js 处理外部请求数据的方法和技巧

    Next.js 是一种流行的 React 框架,可以帮助我们构建可靠、可扩展的 Web 应用程序。与许多其他的 React 框架不同,Next.js 还提供了一些处理外部请求数据的方法和技巧,让应用程...

    2 小时前
  • 用 Fastify 实现自定义错误处理器

    Fastify 是一个基于 Node.js 的快速和低开销 Web 框架。它专为构建高效和可伸缩的服务而设计,提供了很多强大的功能,如内置的插件系统、路由、中间件等等。

    2 小时前
  • Kubernetes 中的 Job 和 CronJob 使用详解

    Kubernetes 是一个用于管理容器化应用程序的开源平台,它有助于在大规模分布式系统中轻松部署、管理和扩展应用。在 Kubernetes 中,Job 和 CronJob 是用于执行批处理任务和定期...

    2 小时前
  • 在 Hapi.js 中实现推送通知

    推送通知是现代 Web 应用程序的重要组成部分,使得您可以向用户传递实时信息,而无需用户每次主动获取。在这篇文章中,我们将探讨如何在 Hapi.js 中实现推送通知,以便更好地服务我们的用户。

    2 小时前
  • 用 Redis 响应快速的 GraphQL 查询

    GraphQL 是一种用于 API 的查询语言,可以让前端开发人员灵活地请求数据并减少不必要的网络请求。然而,在大型应用程序中,GraphQL 查询可以变得相当复杂和缓慢,尤其是在处理大量数据时。

    3 小时前
  • JavaScript 面向对象编程:ECMAScript 2021 中的类

    在 JavaScript 中,面向对象编程(OOP)是一种常见的编程范型。在 ECMAScript 2021 中,类被引入作为一种更加强大且方便的面向对象编程方式。

    3 小时前
  • Chai 报错:expected [] to have length 1 解决方法

    前言 在前端开发中,测试是非常重要的一部分。而 Chai 是一款常用的 JavaScript 测试库,它提供了许多有用的断言和 API,可以帮助我们进行测试驱动开发(TDD)和行为驱动开发(BDD)。

    3 小时前
  • Serverless 如何实现热启动?

    随着云计算技术的发展,Serverless 架构已经成为了一种越来越受欢迎的应用架构模式,它可以为开发者提供更快的部署、更低的成本和更好的可伸缩性。但是,Serverless 架构中的函数冷启动问题一...

    3 小时前
  • Redis 的应用场景与优缺点分析

    在前端开发中,缓存是一个非常有用的工具,它可以提高网站的响应速度以及数据传输的效率。而 Redis 作为一款常用的缓存服务器,可以应用在很多场景下。本文将介绍 Redis 的应用场景及其优缺点分析,旨...

    4 小时前
  • 如何在 React 中使用 WebSocket 进行实时通信

    WebSocket 是一种提供实时双向通信的协议,与传统的 HTTP 协议不同,它可以在客户端和服务器之间建立持久连接,使得服务器可以主动向客户端推送消息。React 作为一种流行的开发框架,为了实现...

    4 小时前
  • ECMAScript 2017 中的字符串填充方法:String.padStart() 和 String.padEnd()

    在 JavaScript 中,字符串操作一直是前端开发中最基础也最常用的功能之一,ECMAScript 2017 标准中新增的字符串填充方法 String.padStart() 和 String.pa...

    4 小时前
  • 以 Flex 布局构建响应式设计分割视图

    在当今网络应用程序生态系统中,设计响应式界面非常重要。这种技术允许用户适应不同设备和浏览器屏幕,并使应用程序对于各种设备尺寸都具有良好的适应性。因此,在开发前端应用程序时,设计响应式视图是必不可少的。

    4 小时前
  • 如何在 Angular 应用中实现单元测试

    如何在 Angular 应用中实现单元测试 单元测试在软件工程中是非常重要的一部分,它可以提高代码质量和可维护性。对于 Angular 应用来说,单元测试同样也是不可或缺的。

    4 小时前
  • 多方共建,让北京市无障碍发展健康前行

    多方共建,让北京市无障碍发展健康前行 随着互联网技术的迅猛发展,人们的交流和信息获取方式愈加多样化,但同时,我们也看到了无障碍互联网的重要性。 无障碍网站是指在设计、开发和使用时,考虑了所有人的需求,...

    4 小时前
  • Sequelize(ORM)基础

    在开发现代 Web 应用时,数据存储是不可或缺的一部分。一般而言,应用需要连接数据库来存储和检索信息。但是,直接连接数据库并进行数据操作通常是困难的,因为大部分关系数据库(如 SQLite,Postg...

    4 小时前
  • Deno 应用中如何处理 XML 格式数据

    引言 Deno 是一个新兴的 JavaScript 运行时环境,它与 Node.js 类似,但具有许多 Node.js 中缺失的特性,例如 TypeScript 的原生支持、安全的模块加载等等。

    5 小时前
  • React 中的内联样式和外部样式表的区别

    React 是一种广泛使用的 JavaScript 库,用于开发用户界面。React 支持一种特殊的语法,称为 JSX,它使得将 HTML 和 JavaScript 混合使用变得更加简单和直观。

    5 小时前