js实现简单选项卡功能


Posted in Javascript onMarch 23, 2020

本文为大家分享了js实现简单选项卡功能的具体代码,供大家参考,具体内容如下

首先我们来写HTML代码,构建出整体结构

代码如下:

<!--导航栏部分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>

注:section 部分添加了style,目的是方便演示,为规范HTML与css的代码风格,不推荐这样使用。

接着我们使用css代码构建出样式

代码如下:

*{
 text-align: center;
 }
 nav li{
 display: inline;
 width: 24%;
 text-decoration: none;
 padding: 15px;
 }
 li:hover{
 background-color: lightblue;
 }
 section{
 height: 300px;
}

最后是js的代码,实现选项卡功能

代码如下:

window.onload=function () {
 //获取 li 也就是选项卡选项tab
 var nav=document.getElementById('nav');
 var oNav=nav.getElementsByTagName('li');
 //获取 包裹在container里面的section(内容)
 var container=document.getElementById('container');
 var oDiv=container.getElementsByClassName('tab');
 //使用 循环依次得到li 
 for(var i=0;i<oNav.length;i++){
 oNav[i].index=i;
 //每一次得到li后执行鼠标点击操作则触发函数function 
 oNav[i].onclick=function () { //此处除了可以使用onclick,还可以使用onmouseover
 //在li的个数内依次展示内容 
 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";
 }
 }
};

此上就是用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>

以下是效果图

js实现简单选项卡功能

js实现简单选项卡功能

js实现简单选项卡功能

js实现简单选项卡功能

注:网上还用很多用jQuery实现选项卡的方法,只需三行,等下次有机会弄懂了再分享。

如果大家还想深入学习,可以点击两个精彩的专题:javascript选项卡操作方法汇总 jquery选项卡操作方法汇总

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js 页面刷新location.reload和location.replace的区别小结
Dec 24 Javascript
Javascript学习笔记7 原型链的原理
Jan 11 Javascript
JavaScript快速检测浏览器对CSS3特性的支持情况
Sep 26 Javascript
extjs表格文本启用选择复制功能具体实现
Oct 11 Javascript
深入浅出理解javaScript原型链
May 09 Javascript
js-FCC算法-No repeats please字符串的全排列(详解)
May 02 Javascript
Angular2 父子组件数据通信实例
Jun 22 Javascript
jQuery选择器中的特殊符号处理方法
Sep 08 jQuery
vue 动态改变静态图片以及请求网络图片的实现方法
Feb 07 Javascript
JS实现的JSON数组去重算法示例
Apr 11 Javascript
js实现移动端tab切换时下划线滑动效果
Sep 08 Javascript
vue实现无缝轮播效果(跑马灯)
May 14 Vue.js
js实现轮播图的完整代码
Oct 26 #Javascript
JQuery扩展对象方法操作示例
Aug 21 #jQuery
详解Vue结合后台的列表增删改案例
Aug 21 #Javascript
JavaScript事件发布/订阅模式原理与用法分析
Aug 21 #Javascript
javascript和php使用ajax通信传递JSON的实例
Aug 21 #Javascript
小程序开发基础之view视图容器
Aug 21 #Javascript
详解微信小程序的 request 封装示例
Aug 21 #Javascript
You might like
PHP SQLite类
2009/05/07 PHP
PHP笔记之:基于面向对象设计的详解
2013/05/14 PHP
php实现删除指定目录下相关文件的方法
2014/10/20 PHP
使用PHP实现生成HTML静态页面
2015/11/18 PHP
彻底搞懂JS无缝滚动代码
2007/01/03 Javascript
javascript 进阶篇3 Ajax 、JSON、 Prototype介绍
2012/03/14 Javascript
浅析JS刷新框架中的其他页面 &amp;&amp; JS刷新窗口方法汇总
2013/07/08 Javascript
JavaScript保留两位小数的2个自定义函数
2014/05/05 Javascript
jquery.uploadify插件在chrome浏览器频繁崩溃解决方法
2015/03/01 Javascript
javascript制作的简单注册模块表单验证
2015/04/13 Javascript
JS实现动态生成表格并提交表格数据向后端
2020/11/25 Javascript
JS模仿手机端九宫格登录功能实现代码
2016/04/28 Javascript
原生js实现可拖拽效果
2017/02/28 Javascript
Nodejs中使用phantom将html转为pdf或图片格式的方法
2017/09/18 NodeJs
JavaScript实现职责链模式概述
2018/01/25 Javascript
详解react、redux、react-redux之间的关系
2018/04/11 Javascript
解决element UI 自定义传参的问题
2018/08/22 Javascript
一份超级详细的Vue-cli3.0使用教程【推荐】
2018/11/15 Javascript
详解JavaScript的内存空间、赋值和深浅拷贝
2019/04/17 Javascript
VUEX 数据持久化,刷新后重新获取的例子
2019/11/12 Javascript
vue与iframe之间的信息交互的实现
2020/04/08 Javascript
Python标准库urllib2的一些使用细节总结
2015/03/16 Python
python实现井字棋游戏
2020/03/30 Python
Python实现文件复制删除
2016/04/19 Python
pandas.DataFrame选取/排除特定行的方法
2018/07/03 Python
Django CBV模型源码运行流程详解
2020/08/17 Python
selenium+headless chrome爬虫的实现示例
2021/01/08 Python
python 高阶函数简单介绍
2021/02/19 Python
CSS3实现粒子旋转伸缩加载动画
2016/04/22 HTML / CSS
End Clothing美国站:英国男士潮牌商城
2018/04/20 全球购物
汽车技术服务与营销专业在籍生自荐信
2013/09/28 职场文书
校本教研工作制度
2014/01/22 职场文书
计算机相关专业自荐信
2014/07/02 职场文书
部队反四风对照检查材料
2014/09/26 职场文书
2014幼儿园卫生保健工作总结
2014/12/05 职场文书
网络管理员岗位职责
2015/02/12 职场文书