在前端开发中,选项卡切换是一种常见的界面交互方式。上一篇文章我们介绍了使用 jQuery 实现选项卡切换效果的方法,而今天我们将通过纯 JavaScript 的方式来实现一个完美的选项卡切换效果。
1. HTML 结构
首先,我们需要在 HTML 中添加选项卡标签和内容区域。以下是示例代码:
-- -------------------- ---- ------- ---- ------------- --- ---------------- --- ----------------- ---------------- ---------- ------ ---------------- ---------- ------ ---------------- ---------- ----- ---- -------------------- ---- --------- --------------- -------- ---------- --- --- - ---- --------- ------ ---- --------- ----------------- ---------- --- --- - ---- --------- ------ ---- --------- ----------------- ---------- --- --- - ---- --------- ------ ------ ------
其中,.tabs
是选项卡的容器,.tab-nav
是选项卡标签的容器,.tab-content
是选项卡内容的容器,.tab-pane
是每个选项卡内容区域的类名。
2. CSS 样式
接下来,我们需要为选项卡的样式添加一些 CSS 样式。以下是示例代码:
-- -------------------- ---- ------- ----- - ------- --- ----- ----- -------- ----- - -------- - ------- -- -------- -- ----------- ----- -------- ----- - -------- -- - ------------- ----- - -------- ------------- - ------------- -- - -------- - - -------- ------ -------- ---- ----------------- ----- ------ ----- ---------------- ----- ------- --- ----- ----- -------------- ----- - -------- ------- - ----------------- ----- - -------- ------- - - ----------------- ----- ------------- ----- -------------- --- ----- ----- - ------------ - ------- --- ----- ----- -------- ----- - --------- - -------- ----- - ---------------- - -------- ------ -
这里我们定义了 .tabs
容器的边框、内边距、.tab-nav
子元素的无序列表样式以及标签和内容区域的基本样式。其中,.tab-nav .active a
是当前选中标签的样式,.tab-pane.active
是当前选中内容区域的样式。
3. JavaScript 实现
最后,我们使用纯 JavaScript 来实现选项卡切换效果。以下是示例代码:
-- -------------------- ---- ------- --- ---- - -------------------------------- --- ------ - ------------------------------- --- ---------- - ------------------------------ --- ---------- - ----------------------------------- --- ------- - ----------------------------------------- -------- ------ - --- ---- - - -- - - ------------------ ---- - --------------------------------------- ----------- - ------------------- --- ---- - --------------------------------------------- -------------- --- - - -------- ------------ - --- ---- - - -- - - --------------- ---- - -- ------------------------------ --- ---- - ----------------------------------- - ---- - -------------------------------------- - - --- ---- - - -- - - ------------------ ---- - --- - - --------------------------------- -- ----------------------- --- --- - ---- - -------------------------------------- - - ---------------------------------------------------------- -------- --------------------------------------------------------------------------------