Material Design 中条件菜单的实现方法

阅读时长 11 分钟读完

Material Design 是 Google 推出的一种设计语言和设计系统,基于这种设计风格进行前端开发的网站和应用在设计美观和用户体验方面都有很大的优势。其中的条件菜单是 Material Design 中常见的一种组件,用来展示多个选项,用户可以选择其中一个选项以筛选内容。

在本文中,我们将详细介绍 Material Design 中条件菜单的实现方法,包括 HTML 结构、CSS 样式和 JavaScript 代码。同时,还将给出示例代码,帮助读者更好地理解和实践。

HTML 结构

条件菜单通常由一个弹出窗口和多个选项组成,我们可以使用 HTML 标签来构建这个结构。

-- -------------------- ---- -------
------ -------
---- -----------------
  ------ ----------
  ------- ---------- ------------- ---------------- ------------- ----------------------- ---------------------- -------------------- ----------------------
  ------ ------
  ---------
  ------ -------
  ---- --------------------- -------------------------------------
    -- --------------------- --------------- -----
    -- --------------------- --------------- -----
    -- --------------------- --------------- -----
  ------
------
展开代码

其中,1 是弹出窗口的外部容器,2 是触发条件的按钮,3 是菜单选项的父容器。需要注意的是,这里使用了 Bootstrap 框架提供的 dropdown 组件,读者可以根据实际需要使用其他组件或自行编写相应的 CSS 样式。

CSS 样式

接下来,我们需要定义条件菜单的样式,使其能够符合 Material Design 的设计风格。

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

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

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

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

-------------- -
  -------- ------
  ------ -----
  -------- ------ -------
  ------ -----
  ------------ ----
  ------ --------
  ----------- --------
  ------------ -------
  ----------------- ------------
  ------- --
-
---------------------
-------------------- -
  ------ --------
  ---------------- -----
  ----------------- --------
-
----------------------
--------------------- -
  ------ -----
  ---------------- -----
  ----------------- --------
-
展开代码

这段 CSS 样式中,定义了条件菜单的外部容器、触发按钮、菜单选项的样式,包括背景颜色、字体大小、边框样式等。需要注意的是,读者可能需要对样式进行调整以适应自己的项目需求。

JavaScript 代码

最后,我们需要添加 JavaScript 代码来实现条件菜单的下拉和收起功能。

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

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

----------------------- -------- --- -
  ---------------------------
---
展开代码

这段代码中,我们监听了三个事件,分别是菜单选项的点击事件、触发按钮的点击事件和文档的点击事件。菜单选项的点击事件使用 stopPropagation 方法阻止冒泡,触发按钮的点击事件使用 toggle 方法切换下拉状态,文档的点击事件使用 hide 方法隐藏所有下拉菜单。需要注意的是,这里使用了 jQuery 框架,如读者需要使用原生 JavaScript 实现,可以参考相关文档。

示例代码

最后,我们提供完整的示例代码,帮助读者更好地理解和实践。

-- -------------------- ---- -------
--------- -----
------
  ------
    ----- ----------------
    ----- --------------- ---------------------------- -------------------
    --------------- ------ ------------------
    ----- ---------------- ---------------------------------------------------------------------------------------
    ----- ---------------- -----------------
  -------
  ------
    ---- ------------------
      ---- ------------
        ---- -----------------
          ---- -----------------
            ------- ---------- ------------- ---------------- ------------- ----------------------- ---------------------- -------------------- ----------------------
              ------ ------
            ---------
            ---- --------------------- -------------------------------------
              -- --------------------- --------------- -----
              -- --------------------- --------------- -----
              -- --------------------- --------------- -----
            ------
          ------
        ------
      ------
    ------
    ------- ----------------------------------------------------------------------------
    ------- -----------------------------------------------------------------------------------
    ------- ---------------------------------------------------------------------------------------------
    ------- -------------------------
  -------
-------
展开代码
-- -------------------- ---- -------
--------- -
  --------- ---------
  -------- -------------
-

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

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

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

-------------- -
  -------- ------
  ------ -----
  -------- ------ -------
  ------ -----
  ------------ ----
  ------ --------
  ----------- --------
  ------------ -------
  ----------------- ------------
  ------- --
-
---------------------
-------------------- -
  ------ --------
  ---------------- -----
  ----------------- --------
-
----------------------
--------------------- -
  ------ -----
  ---------------- -----
  ----------------- --------
-
展开代码
-- -------------------- ---- -------
----------------------- ----------------- -------- --- -
  --------------------
---

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

----------------------- -------- --- -
  ---------------------------
---
展开代码

总结

本文详细介绍了 Material Design 中条件菜单的实现方法,包括 HTML 结构、CSS 样式和 JavaScript 代码,同时给出了示例代码,帮助读者更好地理解和实践。需要注意的是,在实际开发中,根据项目需求进行适当的调整和优化,从而达到更好的用户体验和视觉效果。

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

纠错
反馈

纠错反馈