JS 标签页切换(复杂)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>resize</title>
<style type="text/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; }
</style>
</head>
<body>
<div id="warp">
<ul id="tag">
<li>标签一</li>
<li>标签二</li>
<li>标签三</li>
<li>标签4</li>
<li>标签5</li>
</ul>
<div id="tagContent">
<div class="J_tabClass"> 内容一<br>内容一 </div>
<div class="J_tabClass"> 内容二<br>内容二 </div>
<div class="J_tabClass"> 内容三<br>内容三 </div>
<div class="J_tabClass"> 内容4<br>内容4 </div>
<div class="J_tabClass"> 内容4<br>内容5555555555555555 </div>
</div>
</div>
<script type="text/javascript">
//nameSpace
var VVG = {};
VVG.DOM = {};
//创建getElementsByClassName方法
VVG.DOM.getElementsByClassName = function(str,parent,tag){
//父节点存在
if(parent){
// 当父节点为string类型时,查找DOM节点,否则直接引用parent
parent = typeof parent == "string" ? document.getElementById(parent):parent;
// parent为空时提示错误信息
if(!parent) alert("找不到标签,请检查参数是否正确");
}else{
// 未传值时,父节点为body
parent = document.body;
}
// tagContent为节点类型,未传值时为all节点
tag = tag || "*";
// 在父节点查找子节点,建立空数组arr
var els = parent.getElementsByTagName(tag),arr=[];
for(var i=0,n=els.length;i<n;i++){
// 查找每个节点下的classname,以空格分离为一个k数组
for(var j=0,k=els[i].className.split(" "),l=k.length;j<1;j++){
// 当K数组中有一个值与str值相等时,记住这个标签并推入arr数组
if(k[j]==str){
arr.push(els[i]);
break;
}
}
}
// 返回数组
return arr;
}
//创建TabManager对象
VVG.TabManager = function(oo){
this.root = oo.root || "warp";
this.tabUlId = oo.tabUlId||"tabUlId";
this.tabConId = oo.tabConId||"tabConId";
this.tabConClass = oo.tabConClass||"J_tabClass";
this.trggle = oo.trggle || "click";
this.currentCss = oo.currentCss || "current";
}
VVG.TabManager.prototype = {
tabChange:function(){
// 获取UL的id
var ulid = document.getElementById(this.tabUlId);
// 获取UL下的LI元素
var ulli = ulid.getElementsByTagName("li");
// 获取内容盒子DIV元素
var tabConId = document.getElementById(this.tabConId);
// 获取root下的div的class为特定值的对象数组
var tabConClasses = VVG.DOM.getElementsByClassName(this.tabConClass,this.root,"div");
// 初始化
ulli[0].className = this.currentCss;
tabConClasses[0].style.display = 'block';
for (var i = ulli.length - 1; i >= 0; i--) {
// 赋值this 与 that,避免this混乱
var that = this;
// 设置对象index属性
ulli[i].index = i;
// 设置对象的事件
ulli[i]["on" + this.trggle] = function(){
for(var j = tabConClasses.length - 1; j >= 0; j--){
tabConClasses[j].style.display = "none";
ulli[j].className = "";
}
tabConClasses[this.index].style.display = "block";
this.className = that.currentCss;
}
}
}
}
// 新建对象实例
var TabManager1 = new VVG.TabManager(
{
root:"warp",//包裹tab对象的div层的ID名称,必填
tabUlId:"tag",//TAB标签LI元素的父亲UL元素的ID名称,必填
tabConId:"tagContent",//内容元素的包裹盒子的ID名称,必填
trggle:"mouseover",//切换方式,默认为click,可选
currentCss:"current",//TAB标签liy元素的当前CSS名称,默认为current
tabConClass:"J_tabClass",//内容元素的CLASS名称,默认为J_tabClass
}
);
// 调用对象方法
TabManager1.tabChange();
</script>
</body>
</html>
JS 标签页切换(复杂)的更多相关文章
- JS 标签页切换
一 <!DOCTYPE html><html><head><meta charset="utf-8"/><title>自 ...
- JS实现标签页切换效果
本文实例为大家分享了JS标签页切换的具体代码,供大家参考,具体内容如下 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ...
- 在Bootstrap开发中解决Tab标签页切换图表显示问题
在做响应式页面的时候,往往需要考虑更多尺寸设备的界面兼容性,一般不能写死像素,以便能够使得界面元素能够根据设备的不同进行动态调整,但往往有时候还是碰到一些问题,如Tab标签第一页面正常显示,但是切换其 ...
- JavaScript 实现 标签页 切换效果
JavaScript 实现 标签页 切换效果 版权声明:未经授权,严禁分享! 构建主体界面 HTML 代码 <h1>实现标签页的切换效果</h1> <ul id=&quo ...
- Android之ActionBar、Tabs、Fragment、ViewPager实现标签页切换并缓存页面
感觉 Android 到处都是坑,每个地方都要把人折腾半天. 今天来简单说说 Android之ActionBar.Tabs.Fragment.ViewPager 实现标签页切换并缓存页面 关于他们的介 ...
- web前端中实现多标签页切换的效果
在这里,实现多标签页效果的方法有两个,一个是基于DOM的,另一个是基于jquery的,此次我写的是一个对于一个电话套餐的不同,显示不同的标签页 方法一: 首先,我们要把页面的大体框架和样式写出来,ht ...
- python selenium-webdriver 标签页切换(十五)
测试过程中有时候会遇到点击某个按钮或者链接会弹出新的窗口,这时候我们的操作的页面还保持着最初打开页面,但是此时我们需要操作新打开的页面上的功能,这个时候我们需要切换一下标签页 . 其实页面的切换与fr ...
- vue单页面条件下添加类似浏览器的标签页切换功能
在用vue开发的时候,单页面应用程序,而又有标签页这种需求,各种方式实现不了, 从这个 到这个,然后再返回上面那个 因为每个标签页的route不一样,导致组件重新渲染的问题,怎么都不知道如何实现... ...
- html+css+js实现标签页切换
CSS部分: #Tab { margin:0 auto; width:640px; border:none; position:absolute; z-index:9; margin-left:320 ...
随机推荐
- [JZOJ 5860] 荒诞
思路: 头皮发麻的操作... 理解一下题意会发现:排名为\(i\)的前缀正好是第\(i\)个前缀. 所以问题就变成了求\(1->len\)的平方和,注意取模即可. #include <bi ...
- PAT_A1099#Build A Binary Search Tree
Source: PAT A1099 Build A Binary Search Tree (30 分) Description: A Binary Search Tree (BST) is recur ...
- sift-高斯金字塔
一.高斯金字塔 金字塔的层是由降采样得到的,而每一层又有多张图像,其他的图像是由初始的一张经过高斯模糊的得到的. 注意的是:高斯金字塔有层,而金字塔的每一层有一组图像,这一组图像也形成了层.注意两个层 ...
- Shiro术语
请花2分钟阅读和理解Shiro中的术语 - 这是非常重要的.这里的术语和概念在文档中的任何地方都被引用,并且将大大简化您对Shiro和一般的安全性的理解. 因为使用了一些您可能不太明白的术语,所以安全 ...
- Spring Boot 整合 Druid && 配置数据源监控
1. 导入 Druid 包 <dependency> <groupId>com.alibaba</groupId> <artifactId>druid& ...
- uoj139 【UER #4】被删除的黑白树
题目 不难发现有一个暴力\(dp\) 设\(dp[x][l]\)表示\(x\)点子树内所有叶子节点到\(x\)的路径上都有\(l\)和黑点时最多能染多个黑点 转移就是 \[dp[x][l]=\max( ...
- Spring MVC @RequestMapping注解详解(2)
@RequestMapping 参数说明 value:定义处理方法的请求的 URL 地址.(重点) method:定义处理方法的 http method 类型,如 GET.POST 等.(重点) pa ...
- Winform 获取桌面设备上下文
//获得桌面设备上下文 us(Graphics g = Graphics.FromHwnd(IntPtr.Zero)) { g.DrawLine(Pens.Red, , , , ); }
- navicat远程连接报1045 access denied for user'root'@'ip'(using pasword:yes".............
这个其实很简单,授权就行了.如下 1.GRANT ALL PRIVILEGES ON *.* TO'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;2 ...
- Linux-iptables-route-rule
详情: http://www.mamicode.com/info-detail-1412618.html 最后面有粘贴 linux系统路由表 linux一共0-255个路由表 linux可以自定义从 ...