js基于面向对象实现网页TAB选项卡菜单效果代码

本文实例讲述了js基于面向对象实现网页TAB选项卡菜单效果代码。分享给大家供大家参考。具体如下:

这是一款自动的网页TAB,基于面向对象的选项卡菜单,由于时间关系只做了简单的实现,界面没有美化,不多做介绍了。

先来看看运行效果截图:

在线演示地址如下:

http://demo.jb51.net/js/2015/js-mxdx-tab-cha-style-codes/

具体代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>选项卡</title>

<style type="text/css">

body, h2, p {

margin:0px;

padding:0px;

}

ul, li {

margin:0px;

padding:0px;

float:left;

list-style-type:none;

}

body {

font-size:12px;

}

.box {

width:722px;

height:99px;

margin:10px auto;

border:1px solid #dedede;

}

.list {

width:711px;

height:22px;

float:left;

padding:4px 0 0 9px;

border-top:1px solid #fff;

border-left:1px solid #fff;

border-right:1px solid #fff;

background:url(images/tabbg.jpg) repeat-x;

}

.list li {

width:74px;

height:22px;

float:left;

cursor:pointer;

color:#656565;

line-height:22px;

text-align:center;

}

.list li.hove {

width:72px;

height:20px;

color:#fc6703;

line-height:20px;

border-top:1px solid #dedede;

border-left:1px solid #dedede;

border-right:1px solid #dedede;

border-bottom:1px solid #fff;

background:#fff;

}

.content {

width:722px;

height:72px;

float:left;

display:none;

}

</style>

<script type="text/javascript">

function $(id){

return typeof id === "string" ? document.getElementById(id) : id;

}

function $$(oParent, elem){

return (oParent || document).getElementsByTagName(elem);

}

function $$$(oParent, sClass){

var aElem = $$(oParent, '*');

var aClass = [];

var i = 0;

for(i=0;i<aElem.length;i++)if(aElem[i].className == sClass)aClass.push(aElem[i]);

return aClass;

}

function addEvent(oElm, strEvent, fuc) {

window.addEventListener ? oElm.addEventListener(strEvent, fuc, false) : oElm.attachEvent('on' + strEvent, fuc);

};

function Tab(){

this.initialize.apply(this, arguments);

}

Object.extend = function(destination, source) {

for (var property in source) {

destination[property] = source[property];

}

return destination;

};

Tab.prototype = {

initialize : function(obj, dis, content, onEnd, eq){

this.obj = $(obj);

this.oList = $$$(this.obj, 'list')[0];

this.aCont = $$$(this.obj, content);

this.oUl = $$(this.oList, 'ul')[0];

this.aLi = this.oUl.children;

this.timer = null;

eq ? (this.aLi.length < eq ? eq = 0 : eq) : eq = 0;

this.oEve(onEnd);

this.onEnd.method == 'mouseover' ? this.method = "mouseover" : this.method = "click";

this.onEnd.autoplay == 'stop' ? this.autoplay = "stop" : this.autoplay = "play";

this.aCont[eq].style.display = 'block';

this.aLi[eq].className = 'hove';

this.display(dis);

this.autoPlayTab(eq, dis);

},

oEve: function(onEnd){

this.onEnd = {

method: 'mouseover',

autoplay: 'stop',

};

Object.extend(this.onEnd, onEnd || {});

},

display : function(dis){

var _this = this;

var i = iNow = 0;

for(i=0;i<this.aLi.length;i++){

(function(){

var j = i;

addEvent(_this.aLi[j], _this.method,

function() {

_this.fnClick(j,dis);

_this.autoPlayTab(j, dis);

})

})()

}

},

autoPlayTab : function(iNow, dis){

if(this.autoplay == 'play'){

var _this = this;

this.iNow = iNow;

this.obj.onmouseover = function(){

clearInterval(_this.timer);

};

this.obj.onmouseout = function(){

clearInterval(_this.timer);

_this.timer = setInterval(playTab,5000);

};

clearInterval(_this.timer);

_this.timer = setInterval(playTab,5000);

function playTab(){

if(_this.iNow == _this.aLi.length)_this.iNow = 0;

_this.fnClick(_this.iNow, dis)

_this.iNow++

}

}

},

fnClick : function(oBtn, dis){

var i = 0;

for(i=0;i<this.aLi.length;i++)this.aLi[i].className = '',this.aCont[i].style.display = 'none';

this.aLi[oBtn].className = dis;

this.aCont[oBtn].style.display = 'block';

}

};

window.onload = function(){

new Tab("box", 'hove', 'content', {

method : 'mouseover',

autoplay : 'play'

},0);

new Tab("box1", 'hove', 'content', {

method : 'click',

},0);

};

</script>

</head>

<body>

<div id="box" class="box">

<div class="list">

<ul>

<li>团购导航</li>

<li>商城导航</li>

<li>淘宝导航</li>

</ul>

</div>

<div class="content">111</div>

<div class="content">222</div>

<div class="content">333</div>

</div>

<div id="box1" class="box">

<div class="list">

<ul>

<li>团购导航</li>

<li>商城导航</li>

<li>淘宝导航</li>

</ul>

</div>

<div class="content">111</div>

<div class="content">222</div>

<div class="content">333</div>

</div>

</body>

</html>

希望本文所述对大家的JavaScript程序设计有所帮助。

以上是 js基于面向对象实现网页TAB选项卡菜单效果代码 的全部内容, 来源链接: utcz.com/z/334249.html

回到顶部