完美实现JavaScript选项卡切换效果(一)

阅读时长 4 分钟读完

选项卡是网页中常用的交互式组件,用于在一组内容之间进行切换。本文将介绍如何使用 JavaScript 实现一个完美的选项卡切换效果。

HTML 结构

我们首先需要准备一个基础的 HTML 结构,其中包含多个选项卡,每个选项卡都对应着一块内容。

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

其中,.tab-nav 是选项卡导航栏,.tab-content 是选项卡内容容器,.tab-pane 是单个选项卡内容。

CSS 样式

为了让选项卡看起来更加美观,我们可以添加一些 CSS 样式。

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

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

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

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

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

其中,.tab-nav.tab-nav li 控制选项卡导航的样式,.tab-pane.tab-pane.active 控制选项卡内容的样式。

JavaScript 实现

接下来,我们使用 JavaScript 实现选项卡的切换效果。首先,我们需要获取到选项卡导航和选项卡内容容器。

然后,我们可以通过给选项卡导航绑定事件来实现选项卡的切换。这里我们使用事件委托的方式来处理事件。

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

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

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

在上面的代码中,我们首先判断事件触发的元素是否为选项卡导航中的 li 元素。如果是,则获取当前选项卡的索引,并将选项卡导航中的激活状态和选项卡内容中的显示状态进行切换。

示例代码

完整的示例代码如下:

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

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

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

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

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

- ---------------------------------------------------------- --------
--------------------------------------------------------------------------------
纠错
反馈