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 相关文章推荐
$()JS小技巧
Jul 21 Javascript
jQuery ui1.7 dialog只能弹出一次问题
Aug 27 Javascript
Jquery Select操作方法集合脚本之家特别版
May 17 Javascript
jQuery(1.6.3) 中css方法对浮动的实现缺陷分析
Sep 09 Javascript
jQuery Form 页面表单提交的小例子
Nov 15 Javascript
jQuery插件FusionCharts绘制的2D双面积图效果示例【附demo源码】
Apr 11 jQuery
node+koa实现数据mock接口的方法
Sep 20 Javascript
基于react后端渲染模板引擎noox发布使用
Jan 11 Javascript
使用Angular CLI进行单元测试和E2E测试的方法
Mar 24 Javascript
vue 组件使用中的一些细节点
Apr 25 Javascript
vue双击事件2.0事件监听(点击-双击-鼠标事件)和事件修饰符操作
Jul 27 Javascript
在vue中实现echarts随窗体变化
Jul 27 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
Zerg建筑一览
2020/03/14 星际争霸
PHP取进制余数函数代码
2012/01/19 PHP
php 的加密函数 md5,crypt,base64_encode 等使用介绍
2012/04/09 PHP
PHP生成图片验证码、点击切换实例
2014/06/25 PHP
thinkPHP模型初始化实例分析
2015/12/03 PHP
PHP十六进制颜色随机生成器功能示例
2017/07/24 PHP
PHP面向对象程序设计__tostring()和__invoke()用法分析
2019/06/12 PHP
ExtJS下grid的一些属性说明
2009/12/13 Javascript
浅析javascript的间隔调用和延时调用
2014/11/12 Javascript
javascript中动态函数用法实例分析
2015/05/14 Javascript
jquery表单提交带错误信息提示效果
2017/03/09 Javascript
jQuery日程管理控件glDatePicker用法详解
2017/03/29 jQuery
Vue AST源码解析第一篇
2017/07/19 Javascript
JavaScript中的return布尔值的用法和原理解析
2017/08/14 Javascript
JavaScript寄生组合式继承实例详解
2018/01/06 Javascript
深入了解JavaScript词法作用域
2020/07/29 Javascript
使用vue构建多页面应用的示例
2020/10/22 Javascript
vue 递归组件的简单使用示例
2021/01/14 Vue.js
Python安装Numpy和matplotlib的方法(推荐)
2017/11/02 Python
Python入门Anaconda和Pycharm的安装和配置详解
2019/07/16 Python
安装Pycharm2019以及配置anconda教程的方法步骤
2019/11/11 Python
python匿名函数lambda原理及实例解析
2020/02/07 Python
Python基于pip实现离线打包过程详解
2020/05/15 Python
Django实现前台上传并显示图片功能
2020/05/29 Python
Python Selenium操作Cookie的实例方法
2021/02/28 Python
详解CSS3 用border写 空心三角箭头 (两种写法)
2017/09/29 HTML / CSS
澳大利亚排名第一的狂热牛仔品牌:ONETEASPOON
2018/11/20 全球购物
New Balance法国官方网站:购买鞋子和服装
2019/09/01 全球购物
台湾全方位线上课程与职能学习平台:TibaMe
2019/12/04 全球购物
乌鸦喝水教学反思
2014/02/07 职场文书
我为自己代言广告词
2014/03/18 职场文书
物流业务员岗位职责
2015/04/03 职场文书
2016年小学生教师节广播稿
2015/12/18 职场文书
十二月早安励志心语大全
2019/12/03 职场文书
golang goroutine顺序输出方式
2021/04/29 Golang
Python实现简单的猜单词
2021/06/15 Python