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 API学Jquery 之二 属性
Apr 09 Javascript
jquery实现类似EasyUI的页面布局可改变左右的宽度
Sep 12 Javascript
javaScript中push函数用法实例分析
Jun 08 Javascript
基于javascript bootstrap实现生日日期联动选择
Apr 07 Javascript
详解从Node.js的child_process模块来学习父子进程之间的通信
Mar 27 Javascript
VueJS如何引入css或者less文件的一些坑
Apr 25 Javascript
基于JavaScript中字符串的match与replace方法(详解)
Dec 04 Javascript
实例详解Node.js 函数
Jun 10 Javascript
JS实现可视化文件上传
Sep 08 Javascript
react配置antd按需加载的使用
Feb 11 Javascript
Jquery滑动门/tab切换实现方法完整示例
Jun 05 jQuery
JS如何实现封装列表右滑动删除收藏按钮
Jul 23 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 __autoload()方法真的影响性能吗?
2012/03/30 PHP
PHP面向对象详解(三)
2015/12/07 PHP
各种快递查询--Api接口
2016/04/26 PHP
YII2框架中actions的作用与使用方法示例
2020/03/13 PHP
JavaScript中的this实例分析
2011/04/28 Javascript
Jquery实现弹出层分享微博插件具备动画效果
2013/04/03 Javascript
jQuery基于图层模仿五星星评价功能的方法
2015/05/07 Javascript
js计算文本框输入的字符数
2015/10/23 Javascript
Bootstrap入门书籍之(三)栅格系统
2016/02/17 Javascript
bootstrap实现的自适应页面简单应用示例
2017/03/09 Javascript
在Vue中使用echarts的实例代码(3种图)
2017/07/10 Javascript
微信小程序中上传图片并进行压缩的实现代码
2018/08/28 Javascript
详解Vue中watch对象内属性的方法
2019/02/01 Javascript
详解es6新增数组方法简便了哪些操作
2019/05/09 Javascript
Ubuntu下创建虚拟独立的Python环境全过程
2017/02/10 Python
Python设计模式之工厂模式简单示例
2018/01/09 Python
对python制作自己的数据集实例讲解
2018/12/12 Python
python实现比较类的两个instance(对象)是否相等的方法分析
2019/06/26 Python
Python画图高斯分布的示例
2019/07/10 Python
Django框架模型简单介绍与使用分析
2019/07/18 Python
Django实现发送邮件找回密码功能
2019/08/12 Python
使用pandas的box_plot去除异常值
2019/12/10 Python
python利用百度云接口实现车牌识别的示例
2020/02/21 Python
Python 的 f-string 可以连接字符串与数字的原因解析
2021/02/20 Python
HTML5中图片之间的缝隙完美解决方法
2017/07/07 HTML / CSS
微软澳洲官方网站:Microsoft Australia
2017/01/10 全球购物
丝芙兰波兰:Sephora.pl
2018/03/25 全球购物
The Kooples美国官方网站:为情侣提供的法国当代时尚品牌
2019/01/03 全球购物
毕业生的求职信范文分享
2013/12/04 职场文书
大学生工作自荐书
2014/06/16 职场文书
学雷锋标语
2014/06/25 职场文书
社区党的群众路线教育实践活动剖析材料
2014/10/09 职场文书
2014年城市管理工作总结
2014/12/02 职场文书
飞屋环游记观后感
2015/06/08 职场文书
工程款催款函
2015/06/24 职场文书
iPhone13再次曝光
2021/04/15 数码科技