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 相关文章推荐
非常不错的功能强大代码简单的管理菜单美化版
Jul 09 Javascript
node.js 一个简单的页面输出实现代码
Mar 07 Javascript
你必须知道的Javascript知识点之&quot;字面量和对应类型&quot;说明介绍
Apr 23 Javascript
JS打开新窗口防止被浏览器阻止的方法
Jan 03 Javascript
jQuery中(function($){})(jQuery)详解
Jul 15 Javascript
jquery实现TAB选项卡鼠标经过带延迟效果的方法
Jul 27 Javascript
分享JavaScript监听全部Ajax请求事件的方法
Aug 28 Javascript
网站申请不到支付宝接口、微信接口,免接口收款实现方式几种解决办法
Dec 14 Javascript
原生JS中slice()方法和splice()区别
Mar 06 Javascript
vue axios重复点击取消上一次请求封装的方法
Jun 19 Javascript
使用webpack搭建pixi.js开发环境
Feb 12 Javascript
JavaScript实现轮播图特效
Apr 10 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
德生S2000收音机更换“钕铁硼”全频扬声器
2021/03/02 无线电
如何在PHP程序中防止盗链
2008/04/09 PHP
Laravel学习教程之request validation的编写
2017/10/25 PHP
PHP数组式访问接口ArrayAccess用法分析
2017/12/28 PHP
JQuery UI的拖拽功能实现方法小结
2012/03/14 Javascript
Js四则运算函数代码
2012/07/21 Javascript
JavaScript的递归之递归与循环示例介绍
2013/08/05 Javascript
js调用图片隐藏&amp;显示实现代码
2013/09/13 Javascript
JavaScript中数据结构与算法(一):栈
2015/06/19 Javascript
jQuery隐藏和显示效果实现
2016/04/06 Javascript
[原创]Javascript 实现广告后加载 可加载百度谷歌联盟广告
2016/05/11 Javascript
Javascript自执行匿名函数(function() { })()的原理浅析
2016/05/15 Javascript
jQuery实现的表头固定效果实例【附完整demo源码下载】
2016/08/01 Javascript
JavaScript中数组slice和splice的对比小结
2016/09/22 Javascript
js图片轮播手动切换特效
2017/01/12 Javascript
Bootstrap fileinput文件上传组件使用详解
2017/06/06 Javascript
vue打包后显示空白正确处理方法
2017/11/01 Javascript
微信小程序使用component自定义toast弹窗效果
2018/11/27 Javascript
python 的列表遍历删除实现代码
2020/04/12 Python
Python 包含汉字的文件读写之每行末尾加上特定字符
2016/12/12 Python
python opencv检测目标颜色的实例讲解
2018/04/02 Python
Python键盘输入转换为列表的实例
2018/06/23 Python
python实现ftp文件传输功能
2020/03/20 Python
python基于爬虫+django,打造个性化API接口
2021/01/21 Python
pycharm 实现光标快速移动到括号外或行尾的操作
2021/02/05 Python
基于 HTML5 WebGL 实现的垃圾分类系统
2019/10/08 HTML / CSS
英国度假别墅预订:Sykes Cottages
2017/06/12 全球购物
世界上最值得信赖的多日游在线市场:TourRadar
2018/07/20 全球购物
如何在C# winform中异步调用web services
2015/09/21 面试题
党的群众路线对照检查材料
2014/09/22 职场文书
委托培训协议书
2014/11/17 职场文书
伊索寓言读书笔记
2015/06/30 职场文书
网吧管理制度范本
2015/08/05 职场文书
幼儿园科学课教学反思
2016/03/03 职场文书
2019年手机市场的调研报告2篇
2019/10/10 职场文书
想创业成功,需要掌握这些要点
2019/12/06 职场文书