标题:CSS+JS实现滑动门效果
只看楼主
sldtk1
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:20
帖 子:624
专家分:258
注 册:2006-5-4
结帖率:100%
 问题点数:0 回复次数:20 
CSS+JS实现滑动门效果
闲着没事用CSS和JS做了一个TAB选项卡效果,这个效果现在很常见,刚刚接触的人可能不太明白,就发上来与大家交流交流。自我感觉函数写得太复杂了,虽然效果也能实现,如果哪位有更好的方法发出来交流一下吧,共同学习~~~
程序代码:
<html xmlns="http://www.选项卡菜单</title>
<style type="text/css">
.bg{background:url(MenuLine.gif) repeat; height:30px; width:328px; line-height:30px}/*导航条的背景,宽高度*/
ul{list-style-type:none; margin:0; padding:0; font-size:14px}
ul li{float:left; width:82px; text-align:center}
.mouseon{background:url(Menu.gif) no-repeat; font-weight:bold; color:#FFFFFF}/*当某一选项卡被激活的样式*/
.mouseout{font-weight:normal}/*选项卡未激活的样式*/
.list{width:326px!important; width:328px; height:200px; border:1px solid #dcefe1}/*嵌套内容的DIV样式*/
h2{margin:0; padding:0}
</style>
<script language="javascript">
function Tab(m,t,c,n)/*赋给函数四个参数,m代表菜单的个数,t代表选项卡的id,c代表对应子内容的id,n是标识*/
{/*下面这句表示把ID为menu(m)下的子节点<li>标签的个数取出来赋给childNodes*/
    var childNodes=document.getElementById('menu'+m).getElementsByTagName('li');
    for(var i=1;i<=childNodes.length;i++)/*对每个子节点进行遍历*/
    {
        if(i==n)/*当i等于标识,即选项卡被选中*/
        {
            document.getElementById(t+i).className="mouseon";/*选项卡样式为激活状态*/
            document.getElementById(c+i).style.display="block";/*相应内容显示*/
        }
        else
        {
            document.getElementById(t+i).className="mouseout";/*选项卡样式为未激活状态*/
            document.getElementById(c+i).style.display="none";/*相应内容隐藏*/
        }
    }
}
</script>
<body>
<div id="menu1" class="bg">
    <ul><!--函数取menu(1)下的<li>标签,首先将第一个设为激活状态,其余未激活-->
        <li id="t1" class="mouseon" onMouseOver="Tab('1','t','a','1')">选项1</li>
        <li id="t2" class="mouseout" onMouseOver="Tab('1','t','a','2')">选项2</li>
        <li id="t3" class="mouseout" onMouseOver="Tab('1','t','a','3')">选项3</li>
        <li id="t4" class="mouseout" onMouseOver="Tab('1','t','a','4')">选项4</li>
    </ul>
</div>
<div class="list">
    <div id="a1" style="display:block"><!--第一个选项卡的内容显示,其余隐藏-->
        <h2>帝王槌</h2><br/>
        立剑赏月意惆怅,袖饰刀,衣披霜,傲视雾丸,徒手战扶桑.<br />
问津终寻帝王陵,黑影没,尸满岗,惟见逆鲮露寒光.  <br />
须发苍,气轩昂,三尺银狼,破风动八方.  <br />
依身紧握噬魂枪,饮虎血,豪万丈.惟有千年我故乡!
    </div>
    <div id="a2" style="display:none">
        <h2>玉女枪法</h2><br/>
        曾经有个梦想:驰骋江湖,快意恩仇。<br />
曾经有份愿望:千里追凶,十步溅血。<br />
曾经有腔豪情:奇功盖世,名冠武林。<br />
曾经有种期盼:烛影摇红,衣袖添香。
    </div>
    <div id="a3" style="display:none">
        <h2>黑沙刚体</h2><br/>
        赵客缦胡缨,吴钩霜雪明。银鞍照白马,飒沓如流星。
十步杀一人,千里不留行。事了拂衣去,深藏身与名。 
闲过信陵饮,脱剑膝前横。将炙啖朱亥,持觞劝侯嬴。 
三杯吐然诺,五岳倒为轻。眼花耳热后,意气素霓生。
救赵挥金锤,邯郸先震惊。千秋二壮士,烜赫大梁城。
纵死侠骨香,不惭世上英。谁能书阁下,白首太玄经。
    </div>
    <div id="a4" style="display:none">
        <h2>不羁浪人枪</h2><br/>
        素手相牵,斜辉入眼帘,一轮逍遥自在间,醉了山水闲。<br />
沙漠绿水涟,鱼游浅底,明眸一水天。<br />
爱在村友相谈,开心点点,笑语连连,率性夜无眠。<br />
月在西边,风乱星寒,辗转醇香旧事,蛾儿曼舞灯前。
    </div>
</div>
<p>
<div id="menu2" class="bg">
    <ul>
        <li id="l1" class="mouseon" onMouseOver="Tab('2','l','b','1')">选项5</li>
        <li id="l2" class="mouseout" onMouseOver="Tab('2','l','b','2')">选项6</li>
        <li id="l3" class="mouseout" onMouseOver="Tab('2','l','b','3')">选项7</li>
        <li id="l4" class="mouseout" onMouseOver="Tab('2','l','b','4')">选项8</li>
    </ul>
</div>
<div class="list">
    <div id="b1" style="display:block">
        <h2>干将</h2><br/>    干将者,吴人也;莫邪,干将之妻也。干将作剑,金铁之精不流,于是干将夫妻,乃断发剪爪,投于炉中,金铁乃濡,遂以成剑,阳曰干将,阴曰莫邪。 
    </div>
    <div id="b2" style="display:none">
        <h2>龙渊</h2><br/>        “何谓龙渊、太阿、工布?”答曰:“欲知龙渊,观其状,如登高山,临深渊;欲知太阿,观其(纹),巍巍翼翼,如流水之波;欲知工布,(纹)从文起,至脊而止,如珠不可衽,文若流水不绝。”
    </div>
    <div id="b3" style="display:none">
        <h2>湛卢</h2><br/>
        欧冶子所铸五大名剑为三大二小。其大者有湛卢、纯钧、胜邪;其小者有鱼肠、世阙。
    </div>
    <div id="b4" style="display:none">
        <h2>轩辕剑</h2><br/>
        轩辕采首山之铜,铸剑,以天之古字题名。
    </div>
</div>
</body>
</html>

浏览器中效果

源文件
css+js滑动门效果.rar (6.03 KB)
搜索更多相关主题的帖子: CSS 效果 滑动 
2008-11-08 15:09
playtime
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-11-8
得分:0 
要是把CSS和HTML分开写就更好了!

自己的网站http://zhangslib.
2008-11-09 13:22
sldtk1
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:20
帖 子:624
专家分:258
注 册:2006-5-4
得分:0 
样式比较少,所以分开写比较麻烦
2008-11-09 15:53
sldtk1
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:20
帖 子:624
专家分:258
注 册:2006-5-4
得分:0 
这是修改后的代码,把函数精简了,减了两个参数
程序代码:
<html xmlns="http://www.选项卡菜单</title>
<style type="text/css">
.bg{background:url(MenuLine.gif) repeat; height:30px; width:328px; line-height:30px}
ul{list-style-type:none; margin:0; padding:0; font-size:14px}
ul li{float:left; width:82px; text-align:center}
.mouseon{background:url(Menu.gif) no-repeat; font-weight:bold; color:#FFFFFF}
.mouseout{font-weight:normal}
#content0,#content1{width:326px!important; width:328px; height:200px; border:1px solid #dcefe1}
h2{margin:0; padding:0}
</style>
<script language="javascript">
function Tab(m,n)
{
    var menu=document.getElementById('menu'+m).getElementsByTagName('li');
    var list=document.getElementById('content'+m).getElementsByTagName('div');
    for(var i=0;i<menu.length;i++)
    {
        menu[i].className=i==n?"mouseon":"mouseout";
        list[i].style.display=i==n?"block":"none";
    }
}
</script>
<body>
<div id="menu0" class="bg">
    <ul>
        <li class="mouseon" onMouseOver="Tab(0,0)">选项1</li>
        <li class="mouseout" onMouseOver="Tab(0,1)">选项2</li>
        <li class="mouseout" onMouseOver="Tab(0,2)">选项3</li>
        <li class="mouseout" onMouseOver="Tab(0,3)">选项4</li>
    </ul>
</div>
<div id="content0">
    <div style="display:block">
        <h2>帝王槌</h2><br/>
        立剑赏月意惆怅,袖饰刀,衣披霜,傲视雾丸,徒手战扶桑.<br />
问津终寻帝王陵,黑影没,尸满岗,惟见逆鲮露寒光.  <br />
须发苍,气轩昂,三尺银狼,破风动八方.  <br />
依身紧握噬魂枪,饮虎血,豪万丈.惟有千年我故乡!
    </div>
    <div style="display:none">
        <h2>玉女枪法</h2><br/>
        曾经有个梦想:驰骋江湖,快意恩仇。<br />
曾经有份愿望:千里追凶,十步溅血。<br />
曾经有腔豪情:奇功盖世,名冠武林。<br />
曾经有种期盼:烛影摇红,衣袖添香。
    </div>
    <div style="display:none">
        <h2>黑沙刚体</h2><br/>
        赵客缦胡缨,吴钩霜雪明。银鞍照白马,飒沓如流星。
十步杀一人,千里不留行。事了拂衣去,深藏身与名。 
闲过信陵饮,脱剑膝前横。将炙啖朱亥,持觞劝侯嬴。 
三杯吐然诺,五岳倒为轻。眼花耳热后,意气素霓生。
救赵挥金锤,邯郸先震惊。千秋二壮士,烜赫大梁城。
纵死侠骨香,不惭世上英。谁能书阁下,白首太玄经。
    </div>
    <div style="display:none">
        <h2>不羁浪人枪</h2><br/>
        素手相牵,斜辉入眼帘,一轮逍遥自在间,醉了山水闲。<br />
沙漠绿水涟,鱼游浅底,明眸一水天。<br />
爱在村友相谈,开心点点,笑语连连,率性夜无眠。<br />
月在西边,风乱星寒,辗转醇香旧事,蛾儿曼舞灯前。
    </div>
</div>
<p>
<div id="menu1" class="bg">
    <ul>
        <li class="mouseon" onMouseOver="Tab(1,0)">选项5</li>
        <li class="mouseout" onMouseOver="Tab(1,1)">选项6</li>
        <li class="mouseout" onMouseOver="Tab(1,2)">选项7</li>
        <li class="mouseout" onMouseOver="Tab(1,3)">选项8</li>
    </ul>
</div>
<div id="content1">
    <div style="display:block">
        <h2>干将</h2><br/>    干将者,吴人也;莫邪,干将之妻也。干将作剑,金铁之精不流,于是干将夫妻,乃断发剪爪,投于炉中,金铁乃濡,遂以成剑,阳曰干将,阴曰莫邪。 
    </div>
    <div style="display:none">
        <h2>龙渊</h2><br/>        “何谓龙渊、太阿、工布?”答曰:“欲知龙渊,观其状,如登高山,临深渊;欲知太阿,观其(纹),巍巍翼翼,如流水之波;欲知工布,(纹)从文起,至脊而止,如珠不可衽,文若流水不绝。”
    </div>
    <div style="display:none">
        <h2>湛卢</h2><br/>
        欧冶子所铸五大名剑为三大二小。其大者有湛卢、纯钧、胜邪;其小者有鱼肠、世阙。
    </div>
    <div style="display:none">
        <h2>轩辕剑</h2><br/>
        轩辕采首山之铜,铸剑,以天之古字题名。
    </div>
</div>
</body>
</html>
2008-11-09 15:57
kai
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
得分:0 
有没有兴趣用php 来实现tabbed panel?

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2008-11-10 13:40
sldtk1
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:20
帖 子:624
专家分:258
注 册:2006-5-4
得分:0 
php和这好像没关系吧,或者你是指里面的内容从数据库里读取是吗?

[[it] 本帖最后由 sldtk1 于 2008-11-10 14:08 编辑 [/it]]
2008-11-10 14:04
kai
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
得分:0 
用php可以实现啊,不用javascript.

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2008-11-10 15:04
sldtk1
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:20
帖 子:624
专家分:258
注 册:2006-5-4
得分:0 
你是说用$定义变量?
2008-11-10 15:35
kai
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
得分:0 
变量肯定要定义的,我还没写测试代码。

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2008-11-10 16:12
sldtk1
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:20
帖 子:624
专家分:258
注 册:2006-5-4
得分:0 
算法大概都是一样的,只是语法不同,但这样一来通用性就减少了,只能在PHP的服务器上运行
2008-11-10 16:24



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-243073-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.243288 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved