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 相关文章推荐
jQuery获取css z-index在各种浏览器中的返回值
Sep 15 Javascript
纯JS实现的批量图片预览加载功能
Aug 14 Javascript
学习JavaScript正则表达式
Nov 13 Javascript
jQuery简单设置文本框回车事件的方法
Aug 01 Javascript
AngularJS $http模块POST请求实现
Apr 08 Javascript
基于JavaScript实现的折半查找算法示例
Apr 14 Javascript
Webpack之tree-starking 解析
Sep 11 Javascript
vue多级复杂列表展开/折叠及全选/分组全选实现
Nov 05 Javascript
vue+webpack中配置ESLint
Nov 07 Javascript
微信小程序的线程架构【推荐】
May 14 Javascript
el-select 下拉框多选实现全选的实现
Aug 02 Javascript
使用Karma做vue组件单元测试的实现
Jan 16 Javascript
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中如何防止表单的重复提交
2013/08/02 PHP
给WordPress中的留言加上楼层号的PHP代码实例
2015/12/14 PHP
浅析php设计模式之数据对象映射模式
2016/03/03 PHP
javascript flash下fromCharCode和charCodeAt方法使用说明
2008/01/12 Javascript
JQuery Dialog的内存泄露问题解决方法
2010/06/18 Javascript
基于jquery的多彩百分比 动态进度条 投票效果显示效果实现代码
2011/08/28 Javascript
js制作的鼠标悬浮时产生的下拉框效果
2012/10/27 Javascript
js 验证身份证信息有效性
2014/03/28 Javascript
jQuery实现的图片分组切换焦点图插件
2015/01/06 Javascript
JS实现自动定时切换的简洁网页选项卡效果
2015/10/13 Javascript
Javascript原型链的原理详解
2016/01/05 Javascript
jquery注册文本框获取焦点清空,失去焦点赋值的简单实例
2016/09/08 Javascript
解析Vue2.0双向绑定实现原理
2017/02/23 Javascript
JavaScript使用链式方法封装jQuery中CSS()方法示例
2017/04/07 jQuery
Node.js中的http请求客户端示例(request client)
2017/05/04 Javascript
Vue配合iView实现省市二级联动的示例代码
2018/07/27 Javascript
[00:12]DAC SOLO赛卫冕冠军 VG.Paparazi灬展现SOLO技巧
2018/04/06 DOTA
Python的Flask框架中实现登录用户的个人资料和头像的教程
2015/04/20 Python
python django事务transaction源码分析详解
2017/03/17 Python
Python实现希尔排序算法的原理与用法实例分析
2017/11/23 Python
python爬虫之xpath的基本使用详解
2018/04/18 Python
Python倒排索引之查找包含某主题或单词的文件
2019/11/13 Python
sklearn线性逻辑回归和非线性逻辑回归的实现
2020/06/09 Python
基于python模拟bfs和dfs代码实例
2020/11/19 Python
CSS3 filter(滤镜)实现网页灰色或者黑色模式的示例代码
2021/02/24 HTML / CSS
微信浏览器左上角返回按钮拦截功能
2017/11/21 HTML / CSS
HTML5 canvas基本绘图之图形组合
2016/06/27 HTML / CSS
传统软件工程与面向对象的软件工程有什么区别
2012/05/31 面试题
学前教育求职自荐信范文
2013/12/25 职场文书
服务员自我评价
2014/01/25 职场文书
员工考核管理制度
2014/02/02 职场文书
工作目标责任书
2014/07/23 职场文书
九一八事变演讲稿
2014/09/05 职场文书
个人业务学习心得体会
2016/01/25 职场文书
python3+PyQt5+Qt Designer实现界面可视化
2021/06/10 Python
Java实现房屋出租系统详解
2021/10/05 Java/Android