js实现tab切换效果

阅读时长 5 分钟读完

在 Web 开发中,我们经常需要在页面上实现选项卡(Tab)切换效果来展示不同的内容。这篇文章将介绍如何使用 JavaScript 实现简单、易用的 Tab 切换效果,并提供示例代码和指导意义。

HTML 结构

我们先定义好 HTML 结构,一般情况下,一个 Tab 选项卡由标题和内容两部分组成,可以使用 <ul><li> 元素来表示标题,使用 <div> 元素来表示内容:

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

其中,tab-nav 表示 Tab 的标题栏,tab-content 表示 Tab 的内容区域,active 类名表示当前激活的 Tab。

CSS 样式

为了让 Tab 界面更美观,我们可以添加一些 CSS 样式:

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

这些样式将为 Tab 界面提供基本的外观效果。

JavaScript 实现

接下来,我们使用 JavaScript 实现 Tab 切换功能。首先,我们需要获取 Tab 的标题栏和内容区域元素:

然后,我们给每个 Tab 标题添加事件监听器,当用户点击标题时,就将当前 Tab 的激活状态设置为 active,并将其他 Tab 取消激活状态:

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

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

最后,我们需要设置默认选中的 Tab。我们可以在 HTML 结构中为某个 Tab 添加 active 类名,或者在 JavaScript 中手动设置一个默认选中的 Tab:

至此,我们已经完成了 Tab 切换效果的实现。

示例代码

完整的 HTML、CSS 和 JavaScript 代码如下所示:

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

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

--------

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