JS 实现 Tab标签切换功能
Tab标签切换
效果图:

HTML部分:
<div class="wrap"> <ul id="tag"> <li class="current" >标签一</li> <li>标签二</li> <li>标签三</li> </ul> <div id="tagContent"> <div> 内容一<br>内容一 </div> <div> 内容二<br>内容二 </div> <div> 内容三<br>内容三 </div> </div></div> |
CSS:
*{margin:0;padding:0;} .wrap{width:500px; margin:10px auto; } #tag{ width:498px; overflow:hidden; background:#000; border:1px solid #000; } #tag li{list-style:none; float:left; margin-right:0px; color:white; padding:5px 20px; cursor: pointer;} #tag .current{ color:#000; background:#ccc; } #tagContent div{ width:498px; border:1px solid #000; border-top:none; height:300px; display:none; } |
JS部分:
window.onload=function() //onload 事件句柄,文档装载结束时调用
{
var tag=document.getElementById("tag").children; //获取Tag下的li,即Tag标签
var content=document.getElementById("tagContent").children; //获取Tag标签对应的内容
content[0].style.display = "block"; //默认显示第一个标签的内容
var len= tag.length;
for(var i=0; i<len; i++) //无论点击谁都能实现当前显示,其余隐藏
{
tag[i].index=i; //为何如此?(看下面解释)
tag[i].onclick = function() //0级DOM的事件句柄注册
{
for(var n=0; n<len; n++)
{
tag[n].className="";
content[n].style.display="none";
} //首先将全部的div隐藏
tag[this.index].className = "current";
content[this.index].style.display = "block";
}
}
}
解释 : 代码涉及了JS的闭包。
闭包:函数能访问定义他们的外部函数的变量和参数(除了this、arguments)。尤其重要的是他们取得的是外部变量的最后一个值! 也就是
tag[i].onclick=function() { alert(i); //3 }
弹出的都是3,因为3是for循环中 i 最终的值 。 解决办法就是为每个tag[i]添加一个index值,在函数内部通过this.index调用即可与 i 同步
代码同时也涉及this的取值问题.
tag[i].onclick=function() { alert(this); // DOM元素 }
操作DOM事件时(如onclick、onmouseover..)函数中的this指向的是该元素,而不是全局变量或所在对象。
如换成
var a=function(){ alert(this);//window }
this则指向window对象。
可看出,虽然仅仅是个很简单的Tag标签切换功能,但也能涉及很多JS原理知识。
原文链接:http://blog.csdn.net/wangxiaohui6687/article/details/8523079
JS 实现 Tab标签切换功能的更多相关文章
- 很好用的Tab标签切换功能,延迟Tab切换。
一个网页,Tab标签的切换是常见的功能,但我发现很少有前端工程师在做该功能的时候,会为用户多想想,如果你觉得鼠标hover到标签上,然后切换到相应的内容,就那么简单的话,你将是一个不合格的前端工程师啊 ...
- JS特效之Tab标签切换
在我们平时浏览网站的时候,经常看到的特效有图片轮播.导航子菜单的隐藏.tab标签的切换等等.这段时间学习了JS后,开始要写出一些简单的特效.今天我也分享一个简单tab标签切换的例子.先附上代码: HT ...
- Vue + Element-ui实现后台管理系统(3)---面包屑 + Tag标签切换功能
面包屑 + Tag标签切换功能 有关后台管理系统之前写过两遍博客,看这篇之前最好先看下这两篇博客.另外这里只展示关键部分代码,项目代码放在github上: mall-manage-system 1.V ...
- Bootstrap——设置Tab标签切换
最近一个小项目需要用Tab标签切换显示不同div内容,用到了Bootstrap里面的东西,但是在Bootstrap3教程里却没有找到对应的代码,这里记录一下,方便以后快速查阅学习. 代码如下: < ...
- Vue指令:v-for的用法;v-bind绑定class的几种写法;tab标签切换
一.v-for 的用法 循环指令,可以遍历 Number.String.Object.Array: 循环数字.字符串:有2个参数,分别是value和索引值: 循环对象:有3个参数,分别是 属性值.属性 ...
- 网站开发,推荐使用SuperSlide 插件-Tab标签切换,图片滚动,无缝滚动,焦点图
SuperSlide 致力于解决网站大部分特效展示问题,使网站代码规范整洁,方便维护更新.网站上常用的“焦点图/幻灯片”“Tab标签切换”“图片滚动”“无缝滚动”等只需要一个SuperSlide即可解 ...
- jQuery蓝色修边tab标签切换
jQuery蓝色修边tab标签切换,jQuery,tab选项卡,标签切换,jQuery蓝色修边tab标签广告代码切换是一款非常简单实用tab选项卡切换效果,自己定义好相关的html标签即可,选项卡切换 ...
- 每天一个JavaScript实例-tab标签切换
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- html+css+jQuery+JavaScript实现tab自动切换功能
tab1.html内容 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> & ...
随机推荐
- python 列表 字典 读写文件:pickle模块的基本使用
python数据持久存储:pickle模块的基本使用(转载) 作者: pzxbc 出处: http://pzxbc.cnblogs.com/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保 ...
- iOS编程修改系统音量
iOS的AVFoundation框架提供了基本的音视频播放工具,我们基本上可以靠其中提供的类完成绝大部分的音视频播放任务.但是在音频播放的输出音量的处理上,苹果的策略比较保守.尽管AVPlayer和A ...
- 转:NoSQL更适合担当云数据库吗
在过去几十年,关系型数据库管理系统一直是数据管理的主要模型,随着Web应用数据规模的显著增长,NoSQL系统逐渐引起关注.领域专家Sherif Sakr分析指出,NoSQL具备的优势(能够水平扩展数据 ...
- 打patch p0 p1区别
如何使用patch 对于一个patch文件,有两种常用使用方法: 1.代码:cat new-patch | patch -p0 2.代码:patch -p0 < new-patch patc ...
- Android AsynTask更新主界面
虽然今天礼拜六还在加班,但是在等接口,所以还是有很多时间来自己学点东西的,所以就接着昨天的来.今天继续学的是不通过主线程来更新主线程的界面的问题. 昨天是用的开启线程调用Handler来更新线程,那个 ...
- 【宽搜】【并查集】Vijos P1015 十字绣
题目链接: https://vijos.org/p/1015 题目大意: n*m的网格,线只能在网格的顶点处才能从布的一面穿到另一面.每一段线都覆盖一个单位网格的两条对角线之一,而在绣的过程中,一针中 ...
- delphi读写文本文件
delphi读写文本文件 在工作中遇到了这样一个问题,使用PLSQL将一个表的数据转化成一些列的insert语句存储到一个.sql文本中,我本来想使用access数据库中的查询视图一次执行这些语句 ...
- How to make onActivityResult get called on Nested Fragment
One of the common problem we always meet in the world of Fragment is: although we could callstartAct ...
- Hive学习笔记【转载】
本文转载自:http://blog.csdn.net/haojun186/article/details/7977565 1. HIVE结构 Hive 是建立在 Hadoop 上的数据仓库基础构架. ...
- HTTP学习笔记5-常用报头
24,在普通报头中,有少数报头域应用域所有的请求和响应消息,但并不用于被传输的实体,这些报头域只用于传输的消息. 25,常用的普通报头Cache-Control: Cache-Control普通报头域 ...