如何使用 CSS 和 JavaScript 创建垂直选项卡菜单

JudyEdith 2024-07-04 09:37:31

创建一个垂直选项卡菜单需要结合CSS和JavaScript来实现。下面是一个简单的示例,展示如何创建一个垂直的选项卡菜单。

HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Vertical Tabs Menu</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>

<div class="vertical-tabs">
  <button class="tablink" onclick="openTab('tab1')">Tab 1</button>
  <button class="tablink" onclick="openTab('tab2')">Tab 2</button>
  <button class="tablink" onclick="openTab('tab3')">Tab 3</button>
</div>

<div id="tab1" class="tabcontent">
  <h3>Tab 1 Content</h3>
  <p>This is the content of tab 1.</p>
</div>

<div id="tab2" class="tabcontent">
  <h3>Tab 2 Content</h3>
  <p>This is the content of tab 2.</p>
</div>

<div id="tab3" class="tabcontent">
  <h3>Tab 3 Content</h3>
  <p>This is the content of tab 3.</p>
</div>

<script src="script.js"></script>
</body>
</html>

 

CSS (styles.css)

/* Basic reset and styling */
body {
  font-family: Arial, sans-serif;
  margin: 0;
  padding: 0;
}

.vertical-tabs {
  width: 200px; /* 设置选项卡菜单的宽度 */
  background-color: #f1f1f1;
  overflow: hidden;
}

.tablink {
  width: 100%;
  padding: 10px 20px;
  display: block;
  border: none;
  outline: none;
  cursor: pointer;
  background-color: inherit;
  text-align: left;
  transition: background-color 0.3s;
}

.tablink:hover {
  background-color: #ddd;
}

.tabcontent {
  display: none;
  padding: 20px;
}

/* Responsive adjustments */
@media screen and (max-width: 600px) {
  .vertical-tabs {
    width: 100%; /* 在小屏幕下,选项卡菜单占据整个宽度 */
  }
}

 

JavaScript (script.js)

 
function openTab(tabName) {
  // 隐藏所有的选项卡内容
  var i, tabcontent, tablinks;
  tabcontent = document.getElementsByClassName("tabcontent");
  for (i = 0; i < tabcontent.length; i++) {
    tabcontent[i].style.display = "none";
  }

  // 移除所有选项卡按钮的激活状态
  tablinks = document.getElementsByClassName("tablink");
  for (i = 0; i < tablinks.length; i++) {
    tablinks[i].classList.remove("active");
  }

  // 显示特定的选项卡内容
  document.getElementById(tabName).style.display = "block";

  // 添加激活状态到打开的选项卡按钮
  event.currentTarget.classList.add("active");
}

// 默认打开第一个选项卡
document.getElementById("tab1").style.display = "block";
document.getElementsByClassName("tablink")[0].classList.add("active");

 

解释

  • HTML部分包含了垂直选项卡菜单的按钮和各个选项卡的内容。
  • CSS部分定义了垂直选项卡菜单的样式,按钮和内容的显示方式,并使用媒体查询来进行响应式调整。
  • JavaScript部分实现了选项卡切换功能,通过点击按钮触发openTab函数来显示对应的选项卡内容,并处理按钮的激活状态。
...全文
171 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

10

社区成员

发帖
与我相关
我的任务
社区描述
一个讨论休闲、娱乐和工作生活平衡的在线社区。
前端软件工程 个人社区
社区管理员
  • 2401_83810323
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧