如何用js代码写一个tab选项卡

JavaScript011

如何用js代码写一个tab选项卡,第1张

代码如下:

<html> 

<head> 

<style type="text/css"> 

padding-bottom: 0px 

margin: 0px 

padding-left: 0px 

padding-right: 0px 

font-size: 12px 

padding-top: 0px 

BODY 

padding-left: 20px 

padding-top: 20px 

.wid240 

width: 242px 

margin-bottom: 20px 

.wid180 

width: 182px 

.tab 

border-bottom: #000 1px solid 

border-left: #000 1px solid 

border-top: #000 1px solid 

border-right: #000 1px solid 

.tab UL 

zoom: 1 

clear: both 

.tab UL:after 

display: block 

height: 0px 

visibility: hidden 

clear: both 

content: "" 

.tab UL LI 

text-align: center 

line-height: 26px 

width: 60px 

display: inline 

background: #000 

float: left 

height: 26px 

color: #fff 

.tab UL LI.on 

background: #fff 

color: #000 

.tabList 

border-bottom: #000 1px solid 

border-left: #000 1px solid 

height: 150px 

border-top: #000 1px 

border-right: #000 1px solid 

.tabList .one 

padding-bottom: 10px 

padding-left: 10px 

padding-right: 10px 

display: none 

color: #ff0000 

padding-top: 10px 

.tabList .block 

display: block 

</style> 

<script type="text/javascript"> 

function setTab(name,m,n){ 

for( var i=1i<=ni++){ 

var menu = document.getElementById(name+i) 

var showDiv = document.getElementById("cont_"+name+"_"+i) 

menu.className = i==m ?"on":"" 

showDiv.style.display = i==m?"block":"none" 

</script> 

<meta name="GENERATOR" content="MSHTML 8.00.7600.16535"> 

</head> 

<body> 

<div class="wid240"> 

<div class="tab"> 

<ul> 

<li id="one1" class="on" onmouseover='setTab("one",1,4)'>one1 </li> 

<li id="one2" onmouseover='setTab("one",2,4)'>one2 </li> 

<li id="one3" onmouseover='setTab("one",3,4)'>one3 </li> 

<li id="one4" onmouseover='setTab("one",4,4)'>one4 </li> 

</ul> 

</div> 

<div class="tabList"> 

<div id="cont_one_1" class="one block"> 

cont_one_1</div> 

<div id="cont_one_2" class="one"> 

cont_one_2</div> 

<div id="cont_one_3" class="one"> 

cont_one_3</div> 

<div id="cont_one_4" class="one"> 

cont_one_4</div> 

</div> 

</div> 

<div class="wid180"> 

<div class="tab"> 

<ul> 

<li id="tow1" class="on" onclick='setTab("tow",1,3)'>tow1 </li> 

<li id="tow2" onclick='setTab("tow",2,3)'>tow2 </li> 

<li id="tow3" onclick='setTab("tow",3,3)'>tow3 </li> 

</ul> 

</div> 

<div class="tabList"> 

<div id="cont_tow_1" class="one block"> 

cont_tow_1</div> 

<div id="cont_tow_2" class="one"> 

cont_tow_2</div> 

<div id="cont_tow_3" class="one"> 

cont_tow_3</div> 

</div> 

</div> 

</body> 

</html>

直接复制到本地html页面运行就可以,望采纳,谢谢!

mouseenter 改成 click

放在 head 不生效是因为选项卡的元素还没有生成,所以这个事件无法绑定到目标对象上。

可以改成下面的代码,在网页加载完毕后再绑定事件,这样就可以放在 <head>中:

$(document).ready(function(){

$(".dt_tab li").mouseenter(function () {

if(! $(this).hasClass(".showed")){

$(".showed").removeClass("showed")

$(this).addClass("showed")

$(".dt_tab>div").eq($(this).index()).addClass("showed")

}

})

})

前段时间写了个tabs 选项卡切换效果,今天抽空在原有的基础上进行了扩展,加入了自动轮播,这样就变成了类似图片轮播的效果了。

html 代码:

<!DOCTYPE HTML>

<html lang="en-US">

<head>

<meta charset="UTF-8">

<title>js-tabs</title>

<link rel="stylesheet" type="text/css" href="../css/base.css" media="all"/>

<style type="text/css">

a{color:#a0b3d6}

.tabs{border:1px solid #a0b3d6margin:100pxwidth:300px}

.tabs-nav a{background:#eaf0fdline-height:30pxpadding:0 20pxdisplay:inline-blockborder-right:1px solid #a0b3d6border-bottom:1px solid #a0b3d6float:left}

.tabs-nav .select1,.tabs-nav .select2,.tabs-nav .select3,.tabs-nav .select4{background:whiteborder-bottom:1px solid white_position:relative}

.tabs-content{padding:20pxborder-top:1px solid #a0b3d6margin-top:-1px}

</style>

</head>

<body>

<div class="tabs" id="tabs">

<h2 class="tabs-nav clearfix">

<a href="javascript:">首页</a>

<a href="javascript:">技术</a>

<a href="javascript:">生活</a>

<a href="javascript:">作品</a>

</h2>

<p class="tabs-content">首页首页首页首页首页首页首页首页首页首页</p>

<p class="tabs-content">技术技术技术技术技术技术技术技术技术技术</p>

<p class="tabs-content">生活生活生活生活生活生活生活生活生活生活</p>

<p class="tabs-content">作品作品作品作品作品作品作品作品作品作品</p>

</div>

<br/><br/>

<div class="tabs" id="tabs2">

<h2 class="tabs-nav clearfix">

<a href="javascript:">11111</a>

<a href="javascript:">22222</a>

<a href="javascript:">33333</a>

</h2>

<p class="tabs-content">11111111111111111111111111111111111</p>

<p class="tabs-content ">222222222222222222222222222222222222</p>

<p class="tabs-content ">333333333333333333333333333333333333333</p>

</div>

</body>

</html>

<script type="text/javascript" src="tabs.js"></script>

<script type="text/javascript">

window.onload = function(){

tabs('tabs','click',true,1000)

tabs('tabs2','mouseover')

}

</script>

tabs.js 代码:

function tabs(id,trigger,autoplay,time){

var tabsWrap = document.getElementById(id)

var tabsBtn = tabsWrap.getElementsByTagName('h2').getElementsByTagName('a')

var tabsContent = getClass('tabs-content',tabsWrap)

var timer = null

var current = 0

show(0)

for(var i = 0,len = tabsBtn.lengthi <leni++){

tabsBtn[i].index = i

if(trigger == 'click'){

tabsBtn[i].onclick = function(){

show(this.index)

}

}else if(trigger == 'mouseover'){

tabsBtn[i].onmouseover = function(){

show(this.index)

}

}

}

if(autoplay){

autoPlay()

tabsWrap.onmouseover = function(){

clearInterval(timer)

}

tabsWrap.onmouseout = function(){

autoPlay()

}

}

function autoPlay(){

timer = setInterval(function(){

show(current)

current++

if(current >= tabsBtn.length){

current = 0

}

},time)

}

function show(n){

current = n

for(var i = 0,len = tabsBtn.lengthi <leni++){

tabsBtn[i].className = ''

tabsContent[i].style.display = 'none'

}

tabsBtn[current].className = 'select' + (current + 1)

tabsContent[current].style.display = 'block'

}

function getClass(classname,obj){

var results = []

var elems = obj.getElementsByTagName('*')

for(var i = 0i <elems.lengthi++){

if(elems[i].className.indexOf(classname) != -1){

results[results.length] = elems[i]

}

}

return results

}

}