在線客服
24小時免費咨詢電話:18978941786
客服時間:上午9:30~下午6點
CSS實例:精簡代碼的兼容各瀏覽器的滑動門
收藏 分享 發布日期:2012-2-12 16:30:40 編輯:admin 文章來源:網站建設教學網 點擊率:
CSS滑動門效果(改進版,代碼少,可根據自己需要任意修改,兼容各瀏覽器)
截圖中效果就是 css滑動門效果,css+div滑動門效果在網頁上非常常見,應用范圍很廣泛,可以減少網頁空間的占用,把相同的類別可以歸類到一起,用CSS滑動門而實現效果。網上很多CSS+JS滑動門效果都不是很好, 要么太固定了,要么就是內容里面不能再插入DIV標簽。這個版本是同事幫我改進的,用起來非常方便。
css+div滑動門效果 (預覽頁面有兩個例子,一個是點擊觸發事件,一個是鼠標滑過實現效果,onclick 和onmouseover 不同)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "<html xmlns="<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<style type="text/css">
*{margin:0;padding:0;}
body{margin:50px;font-size:12px;color:#666;}
li{list-style:none;}
div{width:210px;}
#tab1 ,#tab2{width:398px;height:34px;border:1px #cfedff solid;border-bottom:0;background:url(images/title.gif) repeat-x;}
#tab1 ul ,#tab2 ul{margin:0;padding:0;}
#tab1 li,#tab2 li{float:left;padding:0 30px;height:34px;line-height:34px;text-align:center;border-right:1px #ebf7ff solid;cursor:pointer;}
#tab1 li.now,#tab2 li.now{color:#5299c4;background:#fff;font-weight:bold;}
.tablist{width:378px;height:100px;padding:10px;font-size:14px;line-height:24px;border:1px #cfedff solid;border-top:0;display:none;}
.block{display:block; }
</style>
<script type="text/javascript">
function setTab(m,n){
var menu=document.getElementById("tab"+m).getElementsByTagName("li");
var div=document.getElementById("tablist"+m).getElementsByTagName("div");
var showdiv=[];
for (i=0; j=div[i]; i++){
if ((" "+div[i].className+" ").indexOf(" tablist ")!=-1){
showdiv.push(div[i]);
}
}
for(i=0;i<menu.length;i++)
{
menu[i].className=i==n?"now":"";
showdiv[i].style.display=i==n?"block":"none";
}
}
</script>
<title>CSS中的滑動門效果</title>
</head>
<body>
<div id="tab1">
<ul>
<li onmouseover="setTab(1,0)" class="now">第一行</li>
<li onmouseover="setTab(1,1)">第二行</li>
<li onmouseover="setTab(1,2)">第三行</li>
<li onmouseover="setTab(1,3)">第四行</li>
</ul>
</div>
<div id="tablist1">
<div class="tablist block">
<span><div>第一行</div></span>
</div>
<div class="tablist">
<span>第二行 </span>
</div>
<div class="tablist">
<span>第三行 </span>
</div>
<div class="tablist">
<span>第四行</span>
</div>
</div>
<br /><br /><br />
<div id="tab2">
<ul>
<li onclick="setTab(2,0)" class="now">第一行</li>
<li onclick="setTab(2,1)">第二行</li>
<li onclick="setTab(2,2)">第三行</li>
</ul>
</div>
<div id="tablist2">
<div class="tablist block">
第一行信息
</div>
<div class="tablist">
<span>第二行</span>
</div>
<div class="tablist">
<span>第三行</span>
</div>
</div>
</body>
</html>
[Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運行]
JS主要的是獲取你鼠標點擊后,控制該隱藏或該顯示的對應層。這樣就實現了滑動門效果。
css+div滑動門效果全部代碼如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "<html xmlns="<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<style type="text/css">
*{margin:0;padding:0;}
body{margin:50px;font-size:12px;color:#666;}
li{list-style:none;}
div{width:210px;}
#tab1 ,#tab2{width:398px;height:34px;border:1px #cfedff solid;border-bottom:0;background:url(images/title.gif) repeat-x;}
#tab1 ul ,#tab2 ul{margin:0;padding:0;}
#tab1 li,#tab2 li{float:left;padding:0 30px;height:34px;line-height:34px;text-align:center;border-right:1px #ebf7ff solid;cursor:pointer;}
#tab1 li.now,#tab2 li.now{color:#5299c4;background:#fff;font-weight:bold;}
.tablist{width:378px;height:100px;padding:10px;font-size:14px;line-height:24px;border:1px #cfedff solid;border-top:0;display:none;}
.block{display:block; }
</style>
<script type="text/javascript">
function setTab(m,n){
var menu=document.getElementById("tab"+m).getElementsByTagName("li");
var div=document.getElementById("tablist"+m).getElementsByTagName("div");
var showdiv=[];
for (i=0; j=div[i]; i++){
if ((" "+div[i].className+" ").indexOf(" tablist ")!=-1){
showdiv.push(div[i]);
}
}
for(i=0;i<menu.length;i++)
{
menu[i].className=i==n?"now":"";
showdiv[i].style.display=i==n?"block":"none";
}
}
</script>
<title>CSS中的滑動門效果_365CSS.CN</title>
</head>
<body>
<div id="tab1">
<ul>
<li onmouseover="setTab(1,0)" class="now">第一行</li>
<li onmouseover="setTab(1,1)">第二行</li>
<li onmouseover="setTab(1,2)">第三行</li>
<li onmouseover="setTab(1,3)">第四行</li>
</ul>
</div>
<div id="tablist1">
<div class="tablist block">
<span><div>第一行</div></span>
</div>
<div class="tablist">
<span>第二行 </span>
</div>
<div class="tablist">
<span>第三行 </span>
</div>
<div class="tablist">
<span>第四行</span>
</div>
</div>
<br /><br /><br />
<div id="tab2">
<ul>
<li onclick="setTab(2,0)" class="now">第一行</li>
<li onclick="setTab(2,1)">第二行</li>
<li onclick="setTab(2,2)">第三行</li>
</ul>
</div>
<div id="tablist2">
<div class="tablist block">
第一行信息
</div>
<div class="tablist">
<span>第二行</span>
</div>
<div class="tablist">
<span>第三行</span>
</div>
</div>
</body>
</html>