tab栏切换(二)
来源:互联网 发布:装修甲醛来自哪里 知乎 编辑:程序博客网 时间:2024/06/08 03:40
Tab栏切换原理详解(我自己的见解)
Tab栏切换原理:
例1:给一组button,点击不同的button按钮,被点击的按钮背景色发生变化,没有被点击的按钮颜色保持默认。
方法:遍历所有的button按钮,清除所有的button按钮的类名(class)。给当前的按钮添加一个类名(class),这个类能实现想要的背景色。这种方法的思想我们叫做排他思想:干掉所有人,只剩下自己。`
<style type="text/css"> .current{ background-color: pink; } </style> <script> window.onload = function(){ var btns = document.getElementsByTagName("button"); for (var i = 0; i<btns.length;i++) { //做点击事件 btns[i].onclick = function(){ //清除所有人的类名 for (var j = 0; j < btns.length;j++) { btns[j].className = ""; } // 只剩下自己,而且是点击的那一个 //this指向事件的调用者 this.className = "current"; } } } </script> </head> <body> <button class="current">思想原理</button> <button>思想原理</button> <button>思想原理</button> <button>思想原理</button> <button>思想原理</button> <button>思想原理</button>
例2:tab栏切换(简单易懂的代码)
Tab栏的切换效果其实也是用到了排他思想。当点击button按钮的时候,就显示与之相关的div标签。(怎样显示呢)这就需要得到上面button按钮的索引号,利用索引号显示下面的内容。(让下面所有的盒子都隐藏,只露出想要显示的那个盒子)
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> .box{ width: 320px; margin: 100px auto; border: 1px solid #CCCCCC; } .bottom div{ width: 100%; height: 300px; background-color: pink; display: none; } .current{ background-color: purple; } .bottom div.show{ display: block; } .hidden{ display: none; } </style> <script type="text/javascript"> window.onload = function(){ var btns = document.getElementsByTagName("button"); var divs = document.getElementById("divs").getElementsByTagName("div"); for (var i = 0; i < btns.length;i++) { btns[i].index = i;//给每个btn一个index属性 索引号 btns[i].onclick = function(){ //alert(this.index); // 清除所有的类名 for (var j = 0; j< btns.length;j++) { btns[j].className = ""; } //只留下自己的 给当前的按钮添加类名 this.className = "current"; //先隐藏下面所有的盒子,再单独显示想要显示的那个(与索引号相关的) for (var k = 0; k < divs.length;k++) { divs[k].className = "hidden"; } divs[this.index].className = "show"; } } } </script> </head> <body> <div class="box"> <div class="top"> <button>第一个</button> <button>第二个</button> <button>第三个</button> <button>第四个</button> <button>第五个</button> </div> <div class="bottom" id="divs"> <div class="show">1号盒子</div> <div>2号盒子</div> <div>3号盒子</div> <div>4号盒子</div> <div>5号盒子</div> </div> </div> </body></html>
由于两个for循环内容有相似的,故合并for循环
<script type="text/javascript"> window.onload = function(){ var btns = document.getElementsByTagName("button"); var divs = document.getElementById("divs").getElementsByTagName("div"); for (var i = 0; i < btns.length;i++) { btns[i].index = i; btns[i].onclick = function(){ //清除所有的类名 for (var j = 0;j<btns.length;j++) { btns[j].className = ""; divs[j].className = ""; } //只留下自己 添加一个类名 btns[this.index].className = "current"; divs[this.index].className = "show"; } } } </script>
0 0
- tab栏切换(二)
- js实现多tab栏切换效果(二)
- Tab选项卡切换(二)
- 泛滥的tab切换一例(纯CSS)二
- VS2008(C#)制作网页Tab标签切换方法(二)
- Fragment进阶(二)----->动态、TAB页面切换
- C++小键盘(二)——带tab切换样式
- Tab栏切换(一)
- 多Tab栏切换
- jQuery Tab栏切换
- Tab栏切换
- tab栏切换案例
- tab栏切换原理
- tab栏切换案例
- tab栏切换
- tab选项卡切换效果(二)——延迟切换
- 控制台绘制登陆框(二):TAB切换
- H5实战(二):Tab标签切换效果
- scanf(),getchar(),gets()区别与用法
- PAT 1021. Deepest Root
- Linux系统各目录和文件系统
- android事件分发机制分析
- android蓝牙
- tab栏切换(二)
- c++中左值右值的区分
- 两种防止头文件二次编译的方法
- 任务7:绘制漫天星斗
- Java线程池关闭2-shutdown和awaitTermination
- 简单单例模式
- SQL那些事儿(五)--oracle字段分组排序
- java io系列17之 System.out.println("hello world")原理
- c语言小知识点 7 __attribute #pragma pack (n)使用及(scatter file)分散加载文件 .sct