JS實(shí)現(xiàn)標(biāo)簽頁(yè)切換效果
本文實(shí)例為大家分享了JS標(biāo)簽頁(yè)切換的具體代碼,供大家參考,具體內(nèi)容如下
<html>
<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>標(biāo)簽一</li>
<li>標(biāo)簽二</li>
<li>標(biāo)簽三</li>
<li>標(biāo)簽4</li>
<li>標(biāo)簽5</li>
</ul>
<div id="tagContent">
<div class="J_tabClass"> 內(nèi)容一<br>內(nèi)容一 </div>
<div class="J_tabClass"> 內(nèi)容二<br>內(nèi)容二 </div>
<div class="J_tabClass"> 內(nèi)容三<br>內(nèi)容三 </div>
<div class="J_tabClass"> 內(nèi)容4<br>內(nèi)容4 </div>
<div class="J_tabClass"> 內(nèi)容4<br>內(nèi)容5555555555555555 </div>
</div>
</div>
<script type="text/javascript">
//nameSpace
var VVG = {};
VVG.DOM = {};
//創(chuàng)建getElementsByClassName方法
VVG.DOM.getElementsByClassName = function(str,parent,tag){
//父節(jié)點(diǎn)存在
if(parent){
// 當(dāng)父節(jié)點(diǎn)為string類型時(shí),查找DOM節(jié)點(diǎn),否則直接引用parent
parent = typeof parent == "string" ? document.getElementById(parent):parent;
// parent為空時(shí)提示錯(cuò)誤信息
if(!parent) alert("找不到標(biāo)簽,請(qǐng)檢查參數(shù)是否正確");
}else{
// 未傳值時(shí),父節(jié)點(diǎn)為body
parent = document.body;
}
// tagContent為節(jié)點(diǎn)類型,未傳值時(shí)為all節(jié)點(diǎn)
tag = tag || "*";
// 在父節(jié)點(diǎn)查找子節(jié)點(diǎn),建立空數(shù)組arr
var els = parent.getElementsByTagName(tag),arr=[];
for(var i=0,n=els.length;i<n;i++){
// 查找每個(gè)節(jié)點(diǎn)下的classname,以空格分離為一個(gè)k數(shù)組
for(var j=0,k=els[i].className.split(" "),l=k.length;j<1;j++){
// 當(dāng)K數(shù)組中有一個(gè)值與str值相等時(shí),記住這個(gè)標(biāo)簽并推入arr數(shù)組
if(k[j]==str){
arr.push(els[i]);
break;
}
}
}
// 返回?cái)?shù)組
return arr;
}
//創(chuàng)建TabManager對(duì)象
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");
// 獲取內(nèi)容盒子DIV元素
var tabConId = document.getElementById(this.tabConId);
// 獲取root下的div的class為特定值的對(duì)象數(shù)組
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;
// 設(shè)置對(duì)象index屬性
ulli[i].index = i;
// 設(shè)置對(duì)象的事件
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;
}
}
}
}
// 新建對(duì)象實(shí)例
var TabManager1 = new VVG.TabManager(
{
root:"warp",//包裹tab對(duì)象的div層的ID名稱,必填
tabUlId:"tag",//TAB標(biāo)簽LI元素的父親UL元素的ID名稱,必填
tabConId:"tagContent",//內(nèi)容元素的包裹盒子的ID名稱,必填
trggle:"mouseover",//切換方式,默認(rèn)為click,可選
currentCss:"current",//TAB標(biāo)簽liy元素的當(dāng)前CSS名稱,默認(rèn)為current
tabConClass:"J_tabClass",//內(nèi)容元素的CLASS名稱,默認(rèn)為J_tabClass
}
);
// 調(diào)用對(duì)象方法
TabManager1.tabChange();
</script>
</body>
</html>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
spirngmvc js傳遞復(fù)雜json參數(shù)到controller的實(shí)例
下面小編就為大家分享一篇spirngmvc js傳遞復(fù)雜json參數(shù)到controller的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-03-03
JavaScript中的普通函數(shù)和箭頭函數(shù)的區(qū)別和用法詳解
這篇文章主要介紹了JavaScript中的普通函數(shù)和箭頭函數(shù)的區(qū)別和用法詳解,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-03-03
JavaScript調(diào)用ajax獲取文本文件內(nèi)容實(shí)現(xiàn)代碼
這篇文章主要介紹了JavaScript調(diào)用ajax獲取文本文件內(nèi)容的方法,需要的朋友可以參考下2014-03-03
省市聯(lián)動(dòng)效果的簡(jiǎn)單實(shí)現(xiàn)代碼(推薦)
下面小編就為大家?guī)?lái)一篇省市聯(lián)動(dòng)效果的簡(jiǎn)單實(shí)現(xiàn)代碼(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-06-06
JS實(shí)現(xiàn)圖片幻燈片效果代碼實(shí)例
這篇文章主要介紹了JS實(shí)現(xiàn)圖片幻燈片效果代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05
JS判斷數(shù)組四種實(shí)現(xiàn)方法詳解
這篇文章主要介紹了JS判斷數(shù)組四種實(shí)現(xiàn)方法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06

