/* <![CDATA[ */
$.fn.tab = function(options) {
var org = {
tabId: "",
tabTag: "",
conId: "",
conTag: "",
curClass: "cur",
act: "click",
dft: 0,
effact: null,
auto: false,
autotime: 3000,
aniSpeed: 500
}
$.extend(org, options);
var t = false;
var k = 0;
var _this = $(this);
var tagwrp = $(org.tabId);
var conwrp = $(org.conId);
var tag = tagwrp.find(org.tabTag);
var con = conwrp.find(org.conTag);
var len = tag.length;
var taght = parseInt(tagwrp.css("height"));
var conwh = conwrp.get(0).offsetWidth;
var conht = conwrp.get(0).offsetHeight;
var curtag = tag.eq(org.dft);
function cur(ele, currentClass, tag) {
ele = $(ele) ? $(ele) : ele;
if (!tag) {
ele.addClass(currentClass).siblings().removeClass(currentClass);
} else {
ele.addClass(currentClass).siblings(tag).removeClass(currentClass);
}
}
//prepare
cur(curtag, org.curClass);
con.eq(org.dft).show().siblings(org.conTag).hide();
if (org.effact == "scrollx") {
var padding = parseInt(con.css("padding-left")) + parseInt(con.css("padding-right"));
_this.css({
"position": "relative",
"height": taght + conht + "px",
"overflow": "hidden"
});
conwrp.css({
"width": len * conwh + "px",
"height": conht + "px",
"position": "absolute",
"top": taght + "px"
});
con.css({
"float": "left",
"width": conwh - padding + "px",
"display": "block"
});
}
if (org.effact == "scrolly") {
var padding = parseInt(con.css("padding-top")) + parseInt(con.css("padding-bottom"));
_this.css({
"position": "relative",
"height": taght + conht + "px",
"overflow": "hidden"
});
tagwrp.css({
"z-index": 100
});
conwrp.css({
"width": "100%",
"height": len * conht + "px",
"position": "absolute",
"z-index": 99
});
con.css({
"height": conht - padding + "px",
"float": "none",
"display": "block"
});
}
tag.css({
"cursor": "pointer"
}).each(function(i) {
tag.eq(i).bind(org.act,
function() {
cur(this, org.curClass);
k = i;
switch (org.effact) {
case "slow":
con.eq(i).show("slow").siblings(org.conTag).hide("slow");
break;
case "fast":
con.eq(i).show("fast").siblings(org.conTag).hide("fast");
break;
case "scrollx":
conwrp.animate({
left:
-i * conwh + "px"
},
org.aniSpeed);
break;
case "scrolly":
conwrp.animate({
top:
-i * conht + taght + "px"
},
org.aniSpeed);
break;
default:
con.eq(i).show().siblings(org.conTag).hide();
break;
//End of switch
}
})
})
if (org.auto) {
var drive = function() {
if (org.act == "mouseover") {
tag.eq(k).mouseover();
} else if (org.act == "click") {
tag.eq(k).click();
}
k++;
if (k == len) k = 0;
}
t = setInterval(drive, org.autotime);
}
//End of $.fn.tab
}
/* ]]> */
评论8
最新资源