有点乱,用到了自定义getByClass函数、sibling函数

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>仿QQ</title>
</head>
<style type="text/css">
body,ul,li,div,p{margin: 0;padding: 0;}
.qq_bg{
width: 200px;
background: #c66;
border:1px solid #66c;
position: fixed;
right: 20px;
top: 20px;
}
ul,li{list-style: none;}
.cf:before,.cf:after,.cf>li:before,.cf>li:after{
content: '';
display: block;
}
.cf:after,.cf>li:after{
clear: both;
}
.tab_nav>li{
float: left;
width: 48px;
border-left: 2px solid #fff;
height: 34px;
line-height: 34px;
text-align: center;
color: #fff;
font-size: 12px;
border-bottom: 2px solid #fff;
}
.tab_nav>li.on{border-bottom: none;height: 36px;}
.tab_nav>li:first-child{border-left: none;}
.txt div{
color: #fff;
background: pink;
text-align: center;
padding: 100px 0;
}
</style>
<body>
<div class="qq_bg">
<ul class="tab_nav cf">
<li class="on">会话</li>
<li>联系人</li>
<li>空间</li>
<li>微博</li>
</ul>
<div class="txt">
<div>
<p>泉眼无声惜细流,</p>
<p>树阴照水爱晴柔。</p>
<p>小荷才露尖尖角,</p>
<p>早有蜻蜓立上头。</p>
</div>
<div>
<p>红豆生南国,</p>
<p>春来发几枝。</p>
<p>愿君多采撷,</p>
<p>此物最相思。</p>
</div>
<div>
<p>少读诗书陋汉唐,莫年身世寄农桑。</p>
<p>骑驴两脚欲到地,爱酒一樽常在旁。</p>
<p>老去形容虽变改,醉来意气尚轩昂。</p>
<p>太行王屋何由动,堪笑愚公不自量。</p>
</div>
<div>
<p>万里桥西一草堂,百花潭水即沧浪。</p>
<p>风含翠篠娟娟净,雨裛红蕖冉冉香。</p>
<p>厚禄故人书断绝,恒饥稚子色凄凉。</p>
<p>欲填沟壑唯疏放,自笑狂夫老更狂。</p>
</div>
</div>
</div>
<script type="text/javascript">
var oWin=getByClass(document,'qq_bg')[0];
var oUl=getByClass(oWin,'tab_nav')[0];
var oDiv=getByClass(oWin,'txt')[0];
var aLi=oUl.getElementsByTagName('li');
var aDiv=oDiv.getElementsByTagName('div');
//console.log(aLi.length);
//console.log(aDiv.length);
for(var i=0;i<aDiv.length;i++){
aDiv[i].style.display='none';
}
aDiv[0].style.display="block"; for(var i=0;i<aLi.length;i++){
aLi[i].index=i;
aLi[i].onclick=function(){
this.className='on';
var aa=sibling(this);
for(var i=0;i<aa.length;i++){
aa[i].className=' ';
}
var index=this.index;
for(var j=0;j<aDiv.length;j++){
aDiv[j].style.display="none";
aDiv[index].style.display='block';
}
}
} function sibling( elem ) {
var r = [];
var n = elem.parentNode.firstChild;
for ( ; n; n = n.nextSibling ) {
if ( n.nodeType === 1 && n !== elem ) {
r.push( n );
}
}
return r;
} function getByClass(oParent,cls){
//console.log(oParent);
var aEle=oParent.getElementsByTagName('*');
var aResult=[];
for(var i=0;i<aEle.length;i++){
var aCls=aEle[i].className;
aCls=aCls.split(' ');
if(aCls.indexOf(cls)!=-1){
aResult.push(aEle[i]);
}
}
return aResult; }
</script>
</body>
</html>

js TAb的更多相关文章

  1. js Tab切换实例

    js 实现 tab 切换 实现如下效果: 1.图片每1秒钟切换1次. 2.当鼠标停留在整个页面上时,图片不进行轮播. 3.当点击切换页的选项上时,出现该选项的对应图片,而且切换页选项的背景颜色发生相应 ...

  2. JS——tab函数封装

    1.为li标签添加index属性,这个属性正好就是span标签数组的index值 2.函数封装适合页面有多个tab切换,需要注意的在获取的li标签和span标签对象时,必须将对应div对象作为参数传入 ...

  3. js tab栏切换

    <!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" ...

  4. 原生js tab 栏切换

    <div id="box"> <div> <button>按钮1</button> <button>按钮2</bu ...

  5. JS tab切换事件

    $('ul.main-tab>li').on('mousedown', data, function() { var $this = $(this), $box = $('.main-tab-c ...

  6. JS——tab切换

    排它思想: 1.先让所有的元素恢复默认值 2.再让选中的元素赋专有的值 3.干掉所有人,剩下我一个 <!DOCTYPE html> <html> <head lang=& ...

  7. avalon结合原生js tab切换

    <div class="fishqc-tap"> <div ms-class="[@codePic!=''&&@codeInfo!='' ...

  8. JS特效之Tab标签切换

    在我们平时浏览网站的时候,经常看到的特效有图片轮播.导航子菜单的隐藏.tab标签的切换等等.这段时间学习了JS后,开始要写出一些简单的特效.今天我也分享一个简单tab标签切换的例子.先附上代码: HT ...

  9. 基于CkEditor实现.net在线开发之路(4)快速布局,工具箱,模板载入,tab选项卡简单说明与使用

    上一章给常用的from表单控件属性页面,进行了简单说明和介绍,但是由于是在网页中做界面设计,操作肯定没有桌面应用程序方便,便捷,为了更方便的布局与设计,今天我主要说一下快速布局,工具箱,tab选项卡, ...

随机推荐

  1. C#For循环

    for循环基本格式 for(初始条件;循环条件;状态改变) { 循环体 } 1.小明单位发了100元的购物卡,小明到超市买三类洗化用品,洗发水(15元),香皂(2元),牙刷(5元).要把100元整好花 ...

  2. 【leetcode❤python】Binary Watch

    #-*- coding: UTF-8 -*- from itertools import combinationsclass Solution(object):        hourList=[8, ...

  3. 判断浏览器是否为IE内核的最简单的方法

    没啥说的,直接贴代码,算是ie hack了. if (!+[1,]) { alert('is ie'); }

  4. Linux 新手非常有用的命令

    http://www.cnblogs.com/felix-/p/4341773.html Linux 新手非常有用的命令 你打算从Windows换到Linux上来,还是你刚好换到Linux上来?哎哟! ...

  5. mongodb .net driver

    1.介绍 The official MongoDB .NET Driver provides asynchronous interaction with MongoDB. Powering the d ...

  6. POJ3009 Curling

    题目链接:http://poj.org/problem?id=3009 题意:从2出发,要到达3, 0可以通过,碰到1要停止,并且1处要变成0, 并且从起点开始沿着一个方向要一直前进,直至碰到1(或者 ...

  7. web服务器安装配置

    学习目标 javaweb概念和web资源分类 服务器的分类和常用服务器apache说明 tomcat 服务器目录结构介绍和工程发布 虚拟主机说明和配置 1.Web的概念 1.1.JavaWeb的概念 ...

  8. ubuntu 下解决安装包依赖问题

    我们用banshee软件安装豆瓣插件来做个示例: 1.首先在Ubuntu Software Center内搜索banshee播放器 因为我之前已经安装好了,可以看到如下界面,你可以在点击该软件看到in ...

  9. NPN&PNP

    一.晶体管基础知识 晶体管分2种:NPN.PNP 晶体管通常封装为TO-92,下面是元件实物图 和 元件符合: NPN: 当电压和电流被加到基极上时,NPN晶体管: 其工作原理: 就像水龙头—给控制开 ...

  10. 使用Maven构件Web应用

    一个典型的WAR文件会有如下目录结构: Maven的WEB项目结构: jetty-maven-plugin默认很好地支持了Maven的项目结构.在通常情况下,我们只需要直接在IDE中修改源码,IDE能 ...