简单的javasrcipt选项卡
<!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选项卡的更多相关文章
- jquery 选项卡切换、选项卡封装、简单的jquery选项卡封装、tab切换效果
相信选项卡切换是大家常用的效果单独写一个选项卡切换很方便但是要是一个页面出现多个选项卡不做封装的话会显得代码很杂乱 <div class="bodyCenter"> & ...
- 简单的jquery选项卡效果
html部分 <ul class="tab"> <li>最新</li> <li class="cur">热门&l ...
- Jquery 简单的Tab选项卡特效
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 简单竖向Tab选项卡
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- jquery简单实现tab选项卡效果
html: <ul class="tab"> <li>最新</li> <li class="cur">热门< ...
- (新手向)基于Bootstrap的简单轮播图的手机实现
个人电脑里存了不少适合手机欣赏的图片,但是放手机里看是件很占据资源的事.鉴于家里有一台电脑经常开着,正好用来做家庭局域网共享,于是笔者就设想通过一种比较简单环保的思路.通过手机访问电脑内的图片. 首先 ...
- js 实现tab选项卡
最近一直在研究js 如果不及时复习的话前边学到的东西很快就会忘掉,所以把前段时间的一个简单的tab选项卡的思路写出来也算复习了一下吧, 第一步:先把布局写出来: <div id="d ...
- EUI ViewStack实现选项卡组件 (封装了一个UI类)
封装一个选项卡的UI,用来应付游戏中各种需要选项卡的界面. 例如背包,背包界面的选项卡可以切换装备.物品.符文.宝箱. 下图方法的实现参考:EUI ViewStack实现选项卡组件 假如在主页Home ...
- 浅谈Android选项卡(二)
前面简单介绍了选项卡,下面以及后面的几篇文章介绍下Android选项卡的几种简单实现方法. http://blog.csdn.net/xia215266092/article/details/9613 ...
随机推荐
- SIGPIPE信号
#include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include &l ...
- Linux 操作命令列表记录
Linux 操作命令列表记录 SSH登录 登录 ## 范式 ssh [username]@[host] ## 例 ssh -p 1222 root@10.0.0.1 使用非默认端口(ssh默认端口22 ...
- 前端 TDD 开发
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px ".PingFang SC"; color: #454545 } p.p2 ...
- Two Pointers - leetcode [两指针问题]
125. Valid Palindrome consider only alphanumeric characters and ignore cases. transform(s.begin(), s ...
- 工具类 util.Date 日期类
/** * @description format the time * @author xf.radish * @param {String} format The format your want ...
- Hadoop fs 命令详解
1. 环境:hadoop-2.6.0 2. 参数说明: hadoop fs [-appendToFile <localsrc> ... <dst>] [-cat [-ignor ...
- qemu毒液漏洞分析(2015.9)
0x00背景 安全娱乐圈媒体Freebuf对该漏洞的有关报道: 提供的POC没有触发崩溃,在MJ0011的博客给出了修改后可以使qemu崩溃的poc.详见: http://blogs.360.cn/b ...
- Android Studio Gradle更新的解决办法
环境: Win7_64旗舰版.Android Studio2.1.1 问题描述: 在打开Android Studio项目的时候,会下载项目对应版本的gradle,由于是国外网站导致更新较慢,该版本是在 ...
- history对象 back() forward() go() 和pushState() replaceState()
History(Window.history对象)对象保存着用户上网的历史记录.处于安全方面的考虑,开发人员无法得知用户浏览过的URL,但是借由用户访问过的页面列表,同样可以在不知道实际URL的情况下 ...
- 【转载】javadoc学习笔记和可能的注意细节
转载自:http://www.cnblogs.com/xt0810/p/3630996.html [前面的话] 这次开发项目使用jenkins做持续集成,PMD检查代码,Junit做单元测试,还会自动 ...