js实现简单的选项卡

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Title</title>
 <style>
 *{
 text-align: center;
 }
 nav li{
 display: inline;
 width: 24%;
 text-decoration: none;
 padding: 15px;
 }
 li:hover{
 background-color: lightblue;
 }
 section{
 height: 300px;
 }
 </style>
</head>
<body>
<!--导航栏部分HTML代码-->
<nav id="nav">
 <ul>
 <li class="act">选卡1</li>
 <li>选卡2</li>
 <li>选卡3</li>
 <li>选卡4</li>
 </ul>
</nav>
<!--内容部分HTML代码-->
<div id="container">
 <section class="tab" style="background-color: tomato">内容1</section>
 <section class="tab" style="background-color: cyan">内容2</section>
 <section class="tab" style="background-color: blueviolet">内容3</section>
 <section class="tab" style="background-color: gold">内容4</section>
</div>
<script>
 window.onload=function () {
 var nav=document.getElementById('nav');
 var oNav=nav.getElementsByTagName('li');

 var container=document.getElementById('container');
 var oDiv=container.getElementsByClassName('tab');
 for(var i=0;i<oNav.length;i++){
 oNav[i].index=i;
 oNav[i].onclick=function () {
 for(var i=0;i<oNav.length;i++){
 oNav[i].className='';
 oDiv[i].style.display="none";
 }
 this.className='act';
 oDiv[this.index].style.display="block"
 }
 for(var m=1;m<oNav.length;m++){
 oNav[m].className='';
 oDiv[m].style.display="none";
 }
 }
 };
</script>
</body>
</html>

效果图

在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个简单实现示例: HTML代码: ```html <div class="tab"> <button class="tab-btn active" data-tab="tab1">选项1</button> <button class="tab-btn" data-tab="tab2">选项2</button> <button class="tab-btn" data-tab="tab3">选项3</button> </div> <div class="tab-content" id="tab1"> <p>这是选项1的内容</p> </div> <div class="tab-content" id="tab2"> <p>这是选项2的内容</p> </div> <div class="tab-content" id="tab3"> <p>这是选项3的内容</p> </div> ``` CSS代码: ```css .tab-btn { background-color: #ccc; border: none; color: #fff; padding: 10px; cursor: pointer; } .active { background-color: #f00; } .tab-content { display: none; } ``` JavaScript代码: ```js // 获取所有选项按钮 const tabBtns = document.querySelectorAll(".tab-btn"); // 获取所有选项内容 const tabContents = document.querySelectorAll(".tab-content"); // 循环遍历每个选项按钮 tabBtns.forEach((btn) => { // 添加点击事件监听器 btn.addEventListener("click", () => { // 移除所有选项按钮的 active 类 tabBtns.forEach((btn) => { btn.classList.remove("active"); }); // 给当前点击的选项按钮添加 active 类 btn.classList.add("active"); // 隐藏所有选项内容 tabContents.forEach((content) => { content.style.display = "none"; }); // 显示与点击按钮对应的选项内容 const tabId = btn.getAttribute("data-tab"); document.getElementById(tabId).style.display = "block"; }); }); ``` 解释一下,首先我们通过 `querySelectorAll` 方法获取到所有选项按钮和选项内容的元素,然后循环遍历每个选项按钮,给它们添加点击事件监听器。当点击某个选项按钮时,我们先移除所有选项按钮的 `active` 类,再给当前点击的选项按钮添加 `active` 类。接下来,我们隐藏所有选项内容,然后根据点击按钮的 `data-tab` 属性值,找到与之对应的选项内容,将它的 `display` 样式属性设为 `block`,以显示该选项内容。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值