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判断变量是否空值的代码
Oct 26 Javascript
类似GMAIL的Ajax信息反馈显示
Feb 16 Javascript
JQuery团队打造的javascript单元测试工具QUnit介绍
Feb 26 Javascript
jquery滚动条插件jScrollPane的使用介绍
Nov 08 Javascript
js实现div的切换特效上一个下一个
Feb 11 Javascript
javascript + jquery实现定时修改文章标题
Mar 19 Javascript
Function.prototype.apply()与Function.prototype.call()小结
Apr 27 Javascript
es6中的解构赋值、扩展运算符和rest参数使用详解
Sep 28 Javascript
vue 监听某个div垂直滚动条下拉到底部的方法
Sep 15 Javascript
浅谈webpack SplitChunksPlugin实用指南
Sep 17 Javascript
Vue 表情包输入组件的实现代码
Jan 21 Javascript
在vue-cli 3中给stylus、sass样式传入共享的全局变量
Aug 12 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
Apache2 httpd.conf 中文版
2006/11/17 PHP
php 遍历显示文件夹下所有目录、所有文件的函数,没有分页的代码
2008/11/14 PHP
PHP原生模板引擎 最简单的模板引擎
2012/04/25 PHP
ThinkPHP应用模式扩展详解
2014/07/16 PHP
PHP改进计算字符串相似度的函数similar_text()、levenshtein()
2014/10/27 PHP
php常见的魔术方法详解
2014/12/25 PHP
nodejs 后缀名判断限制代码
2011/03/31 NodeJs
javascript 学习笔记(八)javascript对象
2011/04/12 Javascript
读jQuery之十 事件模块概述
2011/06/27 Javascript
js向上无缝滚动,网站公告效果 具体代码
2013/11/18 Javascript
javascript批量修改文件编码格式的方法
2015/01/27 Javascript
jQuery实现向下滑出的二级菜单效果实例
2015/08/22 Javascript
在JavaScript中call()与apply()区别
2016/01/22 Javascript
深入理解关于javascript中apply()和call()方法的区别
2016/04/12 Javascript
关于angularJs指令的Scope(作用域)介绍
2016/10/25 Javascript
基于Node.js的WebSocket通信实现
2017/03/11 Javascript
浅谈JS函数节流防抖
2017/10/18 Javascript
JavaScript面向对象继承原理与实现方法分析
2018/08/09 Javascript
实例介绍JavaScript中多种组合继承
2019/01/20 Javascript
js计算最大公约数和最小公倍数代码实例
2019/09/11 Javascript
在vue中使用axios实现post方式获取二进制流下载文件(实例代码)
2019/12/16 Javascript
JavaScript对象属性操作实例解析
2020/02/04 Javascript
使用FastCGI部署Python的Django应用的教程
2015/07/22 Python
Django中Middleware中的函数详解
2019/07/18 Python
python之生产者消费者模型实现详解
2019/07/27 Python
python3调用windows dos命令的例子
2019/08/14 Python
Python中logger日志模块详解
2020/08/04 Python
波兰品牌内衣及泳装网上商店:Astratex.pl
2017/02/03 全球购物
公司办公室岗位职责
2014/03/19 职场文书
项目采购员岗位职责
2014/04/15 职场文书
2014年毕业演讲稿范文
2014/05/13 职场文书
婚纱店策划方案
2014/05/22 职场文书
营销与策划专业求职信
2014/06/20 职场文书
目标责任书格式
2014/07/28 职场文书
MySQL query_cache_type 参数与使用详解
2021/07/01 MySQL
SQL注入篇学习之盲注/宽字节注入
2022/03/03 MySQL