日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[分享]多个选项卡切换效果

發布時間:2025/4/14 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [分享]多个选项卡切换效果 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

實現的效果圖:

鼠標經過選項卡,彈出相對應的內容,選項卡個數不限;
1.html

?

<div class="box" id="box">
<dl>
<dt class="on"><a href="#">六一兒童節快樂</a></dt>
<dt><a href="#">快樂</a></dt>
</dl>
<div>
<ul style="display:block;">
<li><a href="#">六一兒童節快樂</a></li>
<li><a href="#">哮喘</a></li>
<li><a href="#">六一兒童節快樂</a></li>
<li><a href="#">童節快樂</a></li>
<li><a href="#">六一兒童節快樂</a></li>
<li><a href="#">六一兒童節快樂</a></li>
<li><a href="#">六一兒童節快樂</a></li>
<li><a href="#">兒童節快樂</a></li>
<li><a href="#">六一兒童節快樂</a></li>
<li><a href="#">六一兒童節快樂</a></li>
</ul>
<ul>
<li><a href="#">兒童節快樂</a></li>
<li><a href="#">六一兒童節快樂</a></li>
<li><a href="#">六一兒童節快樂</a></li>
<li><a href="#">六一兒童節快樂</a></li>
<li><a href="#">兒童節快樂 </a></li>
<li><a href="#">六一兒童節快樂</a></li>
<li><a href="#">六一兒童節快樂</a></li>
<li><a href="#">六一兒童節快樂</a></li>
<li><a href="#">六一兒童節快樂</a></li>
<li><a href="#">六一兒童節快樂</a></li>
</ul>
</div>
<dl>
<dt>兒童節快樂</dt>
<dt>兒童節快樂</dt>
</dl>
<div>
<ul>
<li><a href="#">六一兒童節快樂</a></li>
<li><a href="#">六一兒童節快樂</a></li>
<li><a href="#">六一兒童節快樂</a></li>
<li><a href="#">六一兒童節快樂</a></li>
<li><a href="#">六一兒童節快樂</a></li>
<li><a href="#">六一兒童節快樂</a></li>
<li><a href="#">六一兒童節快樂</a></li>
<li><a href="#">六一兒童節快樂</a></li>
<li><a href="#">六一兒童節快樂</a></li>
<li><a href="#">六一兒童節快樂</a></li>
</ul>
<ul>
<li><a href="#">六一兒童節快樂</a></li>
<li><a href="#">六一兒童節快樂</a></li>
<li><a href="#">六一兒童節快樂</a></li>
<li><a href="#">六一兒童節快樂</a></li>
<li><a href="#">六一兒童節快樂</a></li>
<li><a href="#">六一兒童節快樂</a></li>
<li><a href="#">六一兒童節快樂</a></li>
<li><a href="#">六一兒童節快樂</a></li>
<li><a href="#">六一兒童節快樂</a></li>
<li><a href="#">六一兒童節快樂</a></li>
</ul>
</div>
<div style="clear:both;"></div>
</div>

2.css

body{background-color:#fff;}
.box{width:318px; border:#C5D7A5 1px solid; padding
-bottom:20px;}
.box div{padding:
0 8px;}
.box a{color:#
333; font-size:12px; text-decoration:none;}
.box a:hover{text
-decoration:underline;}
.box ul,.box dl{margin:
0; padding:0; line-height:25px; clear:both;}
.box dt{width:141px; height:25px; line
-height:25px;text-align:center;border:#EBEAEB 1px solid;
margin:
0 8px;font-size:12px;float:left;display:inline; position:relative;bottom:-1px;
margin
-top:5px;cursor:pointer;}
.box ul{border:#DCECC0 1px solid;
float:left;padding:5px 0 5px 10px;display:none;}
.box ul li{list
-style:none;float:left;width:135px;padding-left:10px;}
.box dt.on{border:#DCECC0 1px solid;border
-bottom:#FFF 1px solid;height:30px;font-weight:bold;}

css定位應該注意到地方:

1.? .box dt 需要給其加float:left;才能使dt標簽位于一行當中,這里需要給其加上display:inline;才能保證ie6.0下顯示正常;
2.? dt標簽卡跟下面的內容框是有間隙的,但當前選項卡應該跟其內容框融為一體,讓用戶更容易捕捉信息內容,需要讓上面的標簽卡往下移動1像素,?這用到了相對定位position:relative;bottom:-1px;
3. 當前選項卡加類 dt.on? 改變其下邊框的顏色border-bottom:#FFF 1px solid;下邊框顏色值根據設計需求來定,因為背景色是白色,所以這里也使用白色,目的是讓選項卡跟其對應的內容框融為一體;

4.給類dt.on 加一個高度 height:30px;當前選項卡會將內容框壓下去,內容框便跟相鄰的非當前選項卡出現30-25=5個像素的間距,基本達到了設計要求;

5.這里有個很奇怪地方,直接給ul 加display:none; 頁面顯示就會出現明顯的錯誤,或者說display:none根本沒在ul上實現隱藏的作用;解決辦法是給ul加浮動float:left;這是定位的關鍵之一;

?

3.js代碼

?

var box=document.getElementById("box");
function tab(){
var dllist
=box.getElementsByTagName("dl")
for(i=0;i<dllist.length;i++){
var dtlist
=dllist[i].getElementsByTagName("dt");
//alert(dtlist.length)
for(j=0;j<dtlist.length; j++){(//***//
function(n)
{
// dtlist[j].className="";
dtlist[j].onmouseover=function(){
//var parentdt=this.parentNode
var con_div=get_nextSibling(this.parentNode)
//alert(con_div.nodeName);
var ullist=con_div.getElementsByTagName("ul");
//alert(ullist.length);
//alert(n) 彈出元素在其元素列表或數組中所處的位置編號或下標號,據此來判斷選項卡對應的信息內容塊;
allbox();
this.className="on";
ullist[n].style.display
="block"
}
}
)(j);
}
}
function allbox(){
var allul
=box.getElementsByTagName("ul")
var dtlist
=box.getElementsByTagName("dt")
for(x=0,y=0;x<allul.length,y<dtlist.length;x++,y++)
{allul[x].style.display
="none";dtlist[y].className="";}
}//這里有兩個for循環,變量,表達式,條件,要一一對應好
}
//獲取下一個節點;
function get_nextSibling(n){
var x
=n.nextSibling;
while (x.nodeType!=1){
x
=x.nextSibling;
}
return x;
}
//加載函數tab,window.attachEvent 只有IE可以識別,以此來判斷IE和非IE瀏覽器,因為兩者綁定事件的方法有所不同;
if (window.attachEvent){window.attachEvent("onload", tab);//IE下加載}
else{window.addEventListener("load",tab,true);//非IE下綁定事件}

?

轉載于:https://www.cnblogs.com/fengfan/archive/2010/06/01/1748889.html

總結

以上是生活随笔為你收集整理的[分享]多个选项卡切换效果的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。