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 相关文章推荐
jscript之List Excel Color Values
Jun 13 Javascript
分享十五个最佳jQuery 幻灯插件和教程
Mar 27 Javascript
精通Javascript系列之数据类型 字符串
Jun 08 Javascript
jQuery防止click双击多次提交及传递动态函数或多参数
Apr 02 Javascript
javascript数组操作总结和属性、方法介绍
Apr 05 Javascript
解决jquery版本冲突的有效方法
Sep 02 Javascript
通过JS动态创建一个html DOM元素并显示
Oct 15 Javascript
避免jQuery名字冲突 noConflict()方法
Jul 30 Javascript
jQuery列表检索功能实现代码
Jul 17 jQuery
Element-UI中Upload上传文件前端缓存处理示例
Feb 21 Javascript
angular 服务随记小结
May 06 Javascript
在Vue项目中,防止页面被缩放和放大示例
Oct 28 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
第九节 绑定 [9]
2006/10/09 PHP
PHP整数取余返回负数的相关解决方法
2014/05/15 PHP
PHP设计模式入门之状态模式原理与实现方法分析
2020/04/26 PHP
用javascript实现点击链接弹出&quot;图片另存为&quot;而不是直接打开
2007/08/15 Javascript
window.location.hash 使用说明
2010/11/08 Javascript
在Javascript操作JSON对象,增加 删除 修改的简单实现
2016/06/02 Javascript
Bootstrap栅格系统学习笔记
2016/11/25 Javascript
jquery广告无缝轮播实例
2017/01/05 Javascript
JS中使用media实现响应式布局
2017/08/04 Javascript
vue2.0实现音乐/视频播放进度条组件
2018/06/06 Javascript
微信小程序云开发之使用云数据库
2019/05/17 Javascript
通过实例了解Javascript柯里化流程
2020/03/03 Javascript
使用python调用浏览器并打开一个网址的例子
2014/06/05 Python
在Python中利用Into包整洁地进行数据迁移的教程
2015/03/30 Python
Queue 实现生产者消费者模型(实例讲解)
2017/11/13 Python
Python处理菜单消息操作示例【基于win32ui模块】
2018/05/09 Python
Python实现ping指定IP的示例
2018/06/04 Python
Django实现支付宝付款和微信支付的示例代码
2018/07/25 Python
python读取文本中的坐标方法
2018/10/14 Python
将python文件打包成EXE应用程序的方法
2019/05/22 Python
Python使用Opencv实现图像特征检测与匹配的方法
2019/10/30 Python
python创建n行m列数组示例
2019/12/02 Python
简述python Scrapy框架
2020/08/17 Python
Python连接mysql方法及常用参数
2020/09/01 Python
Python通用唯一标识符uuid模块使用案例
2020/09/10 Python
Shoes For Crews法国官网:美国领先的防滑鞋设计和制造商
2018/01/01 全球购物
表达自我的市场:Society6
2018/08/01 全球购物
加利福尼亚州威尼斯的女性奢侈品设计师服装和概念店:Mona Moore
2018/09/13 全球购物
美国相机和电子产品零售商:Beach Camera
2020/11/26 全球购物
计算机工程学院个人求职信
2013/10/05 职场文书
医学生临床实习自我评价
2014/03/07 职场文书
建议书的格式
2014/05/12 职场文书
安全生产工作汇报
2014/10/28 职场文书
2015教师个人德育工作总结
2015/07/22 职场文书
小学数学教师研修日志
2015/11/13 职场文书
Win11怎么跳过联网验机 ?Win11跳过联网验机激活教程
2022/04/05 数码科技