JavaScript效果之选项卡

原文:JavaScript效果之选项卡

拼了命学习js,想把学到的Javascript效果,可以记在博客里,在记录过程中,加深理解。

gogogo,第一个效果,选项卡。

一、选项卡效果的实现思路

选项卡效果的应用很广泛,几乎所有的网站都会用到选项卡,现在就来写选项卡。

选项卡的实现思路:

 两个div,一个用来放在选项卡,一个用来放置每个选项卡内容。

首先,先把放置内容的div隐藏起来display:none,只保留一个显示display:block。

然后,通过点击选项卡,在该添加类的位置上添上属性类。

二、实现

我写的这个选项卡界面特“简洁”,只有说明选项卡该如何写。start~~~

截图:

function setTab(name,carsel,n)            //name为名字,carsel为游标,n为tab的数量
{
    for(var i =1;i<=n;i++)
    {
        var oMenu = document.getElementById('one'+i);
        var oContent = document.getElementById('con_'+name+i);
        oMenu.className = i == carsel?"hover":"";
        oContent.style.display = i ==carsel?"block":"none";
    }
}

 

<div id="tab_menu">
            <ul>
                <li id="one1" onclick="setTab('one',1,3)">女装</li>
                <li id="one2" onclick="setTab('one',2,3)">男装</li>
                <li id="one3" onclick="setTab('one',3,3)">童装</li>
            </ul>
        </div>
        <div id="tab_content">
            <div id="con_one1">女装女装女装女装女装</div>
            <div id="con_one2" style="display:none">男装男装男装男装男装</div>
            <div id="con_one3" style="display:none">童装童装童装童装童装</div>
        </div>

 

上面的Javascript函数,通过一个for循环,来判断用户点击的是哪一个选项卡,然后便获取该选项卡元素。这里的处理是:document.getElementById('one'+i); 

获取到的会是id = one1/one2/on3,然后判断,i == carsel?"hover":"";   此时循环的 i   是否会等于游标值,会的话就添加一个hover类上去,改变被点击项的样式。

同样,下面的语句:oContent.style.display = i ==carsel?"block":"none";给当前被点击的选项,设置display为block,即显示出来。

三、完整代码

 

<!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" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title></title>
<link href="" rel="stylesheet">
<style type="text/css">
.tab
{
    width: 600px;
    height: 400px;
    background: #CCC;
    margin: 0 auto;
}
#tab_menu
{
    width: 200px;
    height: 400px;
    float: left;
    background: #efefef;
}
#tab_content
{
    width: 400px;
    height: 400px;
    float: left;
}
#con_one1
{
    background: yellow;
    width: 400px;
    height: 400px;
}

#con_one2
{
    background: green;
    width: 400px;
    height: 400px;
}
#con_one3
{
    background: blue;
    width: 400px;
    height: 400px;
}
.hover
{
    background: yellow;
}
</style>
<script type="text/javascript">
function setTab(name,carsel,n)            //carsel为游标,n为tab的数量
{
    for(var i =1;i<=n;i++)
    {
        var oMenu = document.getElementById('one'+i);
        var oContent = document.getElementById('con_'+name+i);
        oMenu.className = i == carsel?"hover":"";
        oContent.style.display = i ==carsel?"block":"none";
    }
}
</script>
</head>
<body>
    <div class="tab">
        <div id="tab_menu">
            <ul>
                <li id="one1" onclick="setTab('one',1,3)">女装</li>
                <li id="one2" onclick="setTab('one',2,3)">男装</li>
                <li id="one3" onclick="setTab('one',3,3)">童装</li>
            </ul>
        </div>
        <div id="tab_content">
            <div id="con_one1">女装女装女装女装女装</div>
            <div id="con_one2" style="display:none">男装男装男装男装男装</div>
            <div id="con_one3" style="display:none">童装童装童装童装童装</div>
        </div>
    </div>
</body>
</html>

View Code

 四、

补充:

用一个参数来实现

 

/*------------------一个参数实现--------------------*/
function setTab(n)
{
    var aLi = document.getElementsByTagName('li');
    var oContent = document.getElementById('tab_content');
    var aDiv = oContent.getElementsByTagName('div');
    var i =0;
    for(i = 0;i<aLi.length; i++)
    {
        if(n == i)
        {
            aLi[i].className = "hover";
            aDiv[i].style.display = "block";
        }
        else
        {
            aLi[i].className = "";
            aDiv[i].style.display = "none";
        }
    }
}

<div id="tab_menu">            <ul>                <!--<li id="one1" onclick="setTab('one',1,3)">女装</li>                <li id="one2" onclick="setTab('one',2,3)">男装</li>                <li id="one3" onclick="setTab('one',3,3)">童装</li>-->                <li id="one1" onclick="setTab(0)" class="hover">女装</li>                <li id="one2" onclick="setTab(1)">男装</li>                <li id="one3" onclick="setTab(2)">童装</li>                            </ul>        </div>

 

时间: 2024-08-02 11:42:26

JavaScript效果之选项卡的相关文章

javascript实现tabs选项卡切换效果(自写原生js)_javascript技巧

现在的页面上有许多各种各样的页面效果,常用的有弹出层效果,无缝滚动效果,选项卡切换效果.今天分享一款自己用原生javascript写的选项卡切换效果,由于本人水平有限,如有问题请指出. 效果图如下:  html代码: 复制代码 代码如下: <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8"> <title>js-tabs</

JavaScript版TAB选项卡效果实例_javascript技巧

复制代码 代码如下: <!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="

原生javascript实现Tab选项卡切换功能

 本文主要介绍了使用原生javascript实现Tab选项卡切换的功能,虽然jQuery有很多类似的插件,单jQuery库着实有点庞大,这种小功能还是直接用javascript来做就好了.     分析个人用原生JS获取类名元素的代码:   代码如下: getByClassName:function(className,parent){ var elem = [], node = parent != undefined&&parent.nodeType==1?parent.getEleme

jquery简单实现带渐显效果的选项卡菜单代码_jquery

本文实例讲述了jquery简单实现带渐显效果的选项卡菜单代码.分享给大家供大家参考.具体如下: 带渐显效果的选项卡菜单,使用了jQuery共同完成的效果,鼠标点击选项卡之后,出现渐变(淡入淡出效果),让网页看上去更生动. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/jquery-cha-style-tab-menu-codes/ 具体代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 T

10个令人惊奇的HTML5和JavaScript效果

10款令人惊奇的HTML5和javascript效果.回到几年前,这些效果是根本不可能实现,只能用flash做,但是现在,已经很轻松的就可以实现了. 1. Breathing Galaxies 使用键盘来改变形状中的线条样式,或移动鼠标来创建一个新的形状. 查看:http://mudcu.be/labs/JS1k/BreathingGalaxies.html 2. Noise Field 移动鼠标来改变粒子的运动.点击随机产生参数. 查看:http://www.airtightinteracti

我的aspx网页在vs2005调试运行不显示验证码图片和javascript效果呢?

问题描述 我的aspx网页在vs2005调试运行不显示验证码图片和javascript效果呢?是不是环境染毒了?是iis出现问题还是vs2005出现问题还是什么原因呢?前几天还好好的! 解决方案 解决方案二:是不是新加js或者css影响了

基于javascript实现tab选项卡切换特效调试笔记_javascript技巧

本文实例为大家分析了javascript实现tab选项卡切换的调试笔记,供大家参考,具体内容如下 制作导航栏,点击导航栏元素时下面的内容会产生相应的变化,并且该元素显示特殊样式. js源代码: //导航栏单击变换内容 function tabSwitch(_this,num) { var tag = document.getElementById("nav9"); var number = tag.getElementsByTagName("a"); //获取导航栏

8个令人印象深刻的JavaScript效果的网站

这篇文章很有意思,我发现了8个具有共同特征的站点-他们都使用JavaScript脚本语言.是什么使HTML/CSS站点很漂亮.过目难忘?我们需要JavaScript的魔力,使网站更具交互性和动画特征. 下面我们就看看这8个站点. Momento App Momento app是个丰富的iPhone应用站点.它有2个以上的不错的图片gallery组成,值得一看. We are fixel 干净,漂亮的站点.口号吸引我们的眼球,你可以刷新显示不同的文字组合. Factoria 非常动画的一个站点,右

10个奇幻的HTML5和Javascript效果

导读:10款令人惊奇的HTML5和javascript效果.回到几年前,这些效果是根本不可能实现,只能用flash做,但是现在,已经很轻松的就可以实现了. Breathing Galaxies 使用键盘来改变形状中的线条样式,或移动鼠标来创建一个新的形状. Noise Field 移动鼠标来改变粒子的运动.点击随机产生参数. Keylight 根据按键放置的位置不同来产生不同的单调. Swirling Tentacles 循环产生彩色不同颜色的三维线. FlowerPower 来自于大自然另一个