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 动画卷页 返回顶部 动画特效(兼容Chrome)
Feb 15 Javascript
js获取html参数及向swf传递参数应用介绍
Feb 18 Javascript
JS打字效果的动态菜单代码分享
Aug 21 Javascript
有关JS中的0,null,undefined,[],{},'''''''',false之间的关系
Feb 14 Javascript
JS正则表达式验证密码格式的集中情况总结
Feb 23 Javascript
jquery图片放大镜效果
Jun 23 jQuery
JavaScript学习笔记之惰性函数示例详解
Aug 27 Javascript
JavaScript实现body内任意节点的自定义属性功能示例
Sep 18 Javascript
解决vuecli3.0热更新失效的问题
Sep 19 Javascript
Vue一个案例引发的递归组件的使用详解
Nov 15 Javascript
jQuery实现的自定义轮播图功能详解
Dec 28 jQuery
vue实现登录页面的验证码以及验证过程解析(面向新手)
Aug 02 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学习散记_编码(json_encode 中文不显示)
2011/11/10 PHP
apache+codeigniter 通过.htcaccess做动态二级域名解析
2012/07/01 PHP
PHP简单实现生成txt文件到指定目录的方法
2016/04/25 PHP
php使用parse_str实现查询字符串解析到变量中的方法
2017/02/17 PHP
php验证码生成器
2017/05/24 PHP
PHP实现合并两个排序链表的方法
2018/01/19 PHP
JQuery入门——移除绑定事件unbind方法概述及应用
2013/02/05 Javascript
jQuery输入城市查看地图使用介绍
2013/05/08 Javascript
获取非最后一列td值并将title设为该值的方法
2013/10/30 Javascript
jQuery判断checkbox是否选中的小例子
2013/12/02 Javascript
jQuery插件boxScroll实现图片轮播特效
2015/07/14 Javascript
纯js代码实现简单计算器
2015/12/02 Javascript
微信QQ的二维码登录原理js代码解析
2016/06/23 Javascript
AngularJS 指令详细介绍
2016/07/27 Javascript
IONIC自定义subheader的最佳解决方案
2016/09/22 Javascript
js正则表达式验证表单【完整版】
2017/03/06 Javascript
JS操作xml对象转换为Json对象示例
2017/03/25 Javascript
详解使用React全家桶搭建一个后台管理系统
2017/11/04 Javascript
基于jQuery中ajax的相关方法汇总(必看篇)
2017/11/08 jQuery
原生JS实现获取及修改CSS样式的方法
2018/09/04 Javascript
开发中常用的25个JavaScript单行代码(小结)
2019/06/28 Javascript
JavaScript实现HTML导航栏下拉菜单
2020/11/25 Javascript
[53:43]VP vs NewBee Supermajor 胜者组 BO3 第三场 6.5
2018/06/06 DOTA
python-opencv 将连续图片写成视频格式的方法
2019/01/08 Python
python 发送和接收ActiveMQ消息的实例
2019/01/30 Python
深入解析python中的实例方法、类方法和静态方法
2019/03/11 Python
详解Python Opencv和PIL读取图像文件的差别
2019/12/27 Python
使用Python实现微信拍一拍功能的思路代码
2020/07/09 Python
记一次高分屏下canvas模糊问题
2020/02/17 HTML / CSS
设计师家具购买和委托在线市场:Viyet
2016/11/16 全球购物
KIKO MILANO英国官网:意大利知名化妆品和护肤品品牌
2017/09/25 全球购物
大学生个人求职信范文
2013/09/21 职场文书
司机职责范本
2014/03/08 职场文书
2015年度个人教学工作总结
2015/05/20 职场文书
2015年秋学期教研工作总结
2015/10/14 职场文书
《钢铁是怎样炼成的》高中读后感
2019/08/07 职场文书