<!DOCTYPE html>
<html> <head>
<meta charset="UTF-8">
<meta charset="gb2312">
<link rel="stylesheet" href="main.css">
<script type="text/javascript" src="main.js"></script>
<title>Document</title>
</head> <body>
<div class="top">
<ul class="clear" id="btn_one">
<li class="light" data-color="red">one</li>
<li data-color="blue">two</li>
<li data-color="yellow">three</li>
</ul>
</div>
<div class="main" id="amain">
<div class="min main1">
<ul>
<li>这里有座山</li>
<li>这里有座山</li>
<li>这里有座山</li>
<li>这里有座山</li>
<li>这里有座山</li>
</ul>
</div>
<div class="min main2" style="display: none">
<ul>
<li>窗外有风景</li>
<li>窗外有风景</li>
<li>窗外有风景</li>
<li>窗外有风景</li>
<li>窗外有风景</li>
</ul>
</div>
<div class="min main3" style="display: none">
<ul>
<li>天上有太阳</li>
<li>天上有太阳</li>
<li>天上有太阳</li>
<li>天上有太阳</li>
<li>天上有太阳</li>
</ul>
</div>
</div>
</body> </html>

上面是html代码,很简单就是一个选项卡内容

* {
margin: 0;
padding: 0;
font-size: 14px;
}
/*这里关键了,在float下一样可以获取width和height的值*/
.clear {
zoom: 1;
} .clear:after {
content: '';
display: block;
clear: both;
} .top ul {
list-style-type: none;
} .top ul li {
width: 200px;
height: 50px;
line-height: 50px;
text-align: center;
float: left;
background-color: powderblue;
color: pink;
border: 2px solid powderblue;
} .top ul li.light {
border: 2px solid red;
color: red;
} .main {
width: 612px;
height: 300px;
position: relative;
background: red;
} .min {
width: 612px;
height: 300px;
position: absolute;
left: 0;
top: 0;
} .min ul li {
height: 30px;
line-height: 30px;
font-size: 20px;
}

上面是CSS样式,很简单;用light样式来高亮li初始

// 通过ID  封装函数,如果id字符串等于string,返回getElementById(id)
// 否则返回id 本身; function $(id) {
return typeof id == "string" ? document.getElementById(id) : id;
}
window.onload = function() {
//定义函数titles(li的集合)divs(div的集合);
var titles = $("btn_one").getElementsByTagName("li");
var divs = $("amain").getElementsByTagName("div"); //当titles和divs的长度不一样就不执行;
if (titles.length != divs.length) {
return;
}
for (var i = 0; i < titles.length; i++) {
//为btn_on下的每个li添加索引;
titles[i].id = i;
     //滑动鼠标onmouseover时触发事件;
titles[i].onmouseover = function() {
//getAttribute可以取得自定义标签data-color的值;
var btnstyle = this.getAttribute("data-color");
//清楚所有li和div上的样式
clearBtn();
//鼠标滑过哪个li就高亮哪个li;
this.className = "light";
//data-color当下的值给当前次数的li的内容
this.style.color = btnstyle;
//把data-color当下的值给当前次数li的边框
this.style.border = '2px solid ' + btnstyle;
//设置当前li所对应的div为显示状态
divs[this.id].style.display = "block"; }
} function clearBtn() {
for (var i = 0; i < titles.length; i++) {
//li的样式为空
titles[i].className = "";
//li的内容为白色
titles[i].style.color = "";
//li的边框为空
titles[i].style.border = "";
//div为隐藏状态
divs[i].style.display = "none";
}
}
}

就是通过索引来连接上下两个div,直接可以通过titles和divs两个函数进行响应

简单的javasrcipt选项卡的更多相关文章

  1. jquery 选项卡切换、选项卡封装、简单的jquery选项卡封装、tab切换效果

    相信选项卡切换是大家常用的效果单独写一个选项卡切换很方便但是要是一个页面出现多个选项卡不做封装的话会显得代码很杂乱 <div class="bodyCenter"> & ...

  2. 简单的jquery选项卡效果

    html部分 <ul class="tab"> <li>最新</li> <li class="cur">热门&l ...

  3. Jquery 简单的Tab选项卡特效

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. 简单竖向Tab选项卡

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

  5. jquery简单实现tab选项卡效果

    html: <ul class="tab"> <li>最新</li> <li class="cur">热门< ...

  6. (新手向)基于Bootstrap的简单轮播图的手机实现

    个人电脑里存了不少适合手机欣赏的图片,但是放手机里看是件很占据资源的事.鉴于家里有一台电脑经常开着,正好用来做家庭局域网共享,于是笔者就设想通过一种比较简单环保的思路.通过手机访问电脑内的图片. 首先 ...

  7. js 实现tab选项卡

    最近一直在研究js  如果不及时复习的话前边学到的东西很快就会忘掉,所以把前段时间的一个简单的tab选项卡的思路写出来也算复习了一下吧, 第一步:先把布局写出来: <div id="d ...

  8. EUI ViewStack实现选项卡组件 (封装了一个UI类)

    封装一个选项卡的UI,用来应付游戏中各种需要选项卡的界面. 例如背包,背包界面的选项卡可以切换装备.物品.符文.宝箱. 下图方法的实现参考:EUI ViewStack实现选项卡组件 假如在主页Home ...

  9. 浅谈Android选项卡(二)

    前面简单介绍了选项卡,下面以及后面的几篇文章介绍下Android选项卡的几种简单实现方法. http://blog.csdn.net/xia215266092/article/details/9613 ...

随机推荐

  1. 【USACO】草地排水

    Drainage Ditches 草地排水 usaco 4.2.1描述在农夫约翰的农场上,每逢下雨,Bessie最喜欢的三叶草地就积聚了一潭水.这意味着草地被水淹没了,并且小草要继续生长还要花相当长一 ...

  2. CentOS 7 systemd service开机启动设定

    #vi /etc/systemd/system/xxx.service [Unit] Description=startup script test [Service] Type=simple Exe ...

  3. 解决 bootstrap 在IE8下的兼容问题

    <meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="v ...

  4. Openjudge-NOI题库-简单算术表达式求值

    题目描述 Description 两位正整数的简单算术运算(只考虑整数运算),算术运算为: +,加法运算:-,减法运算:*,乘法运算:/,整除运算:%,取余运算. 算术表达式的格式为(运算符前后可能有 ...

  5. 【IE6的疯狂之三】IE6 3像素BUG的实例

    问题:2列布局.左列固定,右列液态我需要做一个布局.2列,左边列固定宽度.右边列使用剩余宽度.整体宽度不固定,这样不管在17 还是19的屏幕上,左边列始终宽度不变,右边列宽度始终占据剩余宽度.但是我写 ...

  6. Python学习日志(一)

    1.os - Normal Method: os.name() : os.getcwd(): 给出当前的目录,python当前的工作目录 os.listdir(): 返回 os.remove():删除 ...

  7. Win内存分配函数(GlobalAlloc/HeapAlloc/LocalAlloc/VirtualAlloc)

    Win内存分配函数(GlobalAlloc/HeapAlloc/LocalAlloc/VirtualAlloc) 来源:http://blog.csdn.net/chunyexiyu/article/ ...

  8. selenium1,selenium2,watir的比较

    接触web方面的自动化测试,会接触几个常用的工具,selenium1,selenium2,watir 有的时候总是混淆,那么他们的优缺点啥的呢,在让你给项目选自动化框架,会选择哪个??? 1,语言的支 ...

  9. one-sided limit

    Limit[e^(-1/x),x->0,Direction->-1] means $\lim_{x \to 0^{+}}e^{-\frac{1}{x}}$ Limit[e^(-1/x),x ...

  10. 单链表,循环链表,双向链表(C++实现)

    首先是单链表(带附加表头),实现类代码如下: template<class T> struct LinkNode{//链表节点 T data; LinkNode *link; LinkNo ...