tab栏切换案例(登录/注册切换案例)

这篇博客介绍了初学者如何使用JavaScript实现一个基本的Tab栏切换效果。通过点击选项卡,内容区会相应地展示或隐藏,应用了排他思想来切换选中状态。博主提供了HTML和CSS代码,并用for循环为每个选项卡绑定点击事件,以改变选中样式并显示对应的内容区域。
摘要由CSDN通过智能技术生成

初学js,跟着视频做了一个简单的tab栏切换案例。

案例分析:

当鼠标点击上面相应的选项卡(tab),下面内容跟随着变化

                

                  

思路: 

1、tab 栏切换有2个大的模块

2、最上面的模块选项卡,触摸其中的一个,当前这一个底色会变色,其余不变(这里用到的排他思想),通过修改类名的方式。(可以用for循环绑定触摸事件)

3、下面的模块内容,会跟随着上面的选项卡变化,所以下面模块变化写到触摸事件里面

4、规律:下面的模块显示内容和上面的选项卡--对应,相匹配。

5、当我们点击上面的模块选项卡,让下面里面的内容显示,其余隐藏(排他思想)

代码如下:

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>登录</title>

</head>

<style>

    *{

    margin: 0;

    padding: 0;

    text-decoration: none;

    list-style: none;

    box-sizing: border-box;

}

 #content{

     height: 350px;

     width: 300px;

     background-color:antiquewhite;

     margin: 100px auto;

 }

 .content-header{

     height: 50px;

 }

.content-header a{

    margin: 20px;

    font-size: 20px;

    position: relative;

    left:30px;

    top:20px;

   

}

 input{

    height: 30px;

    width: 220px;

    margin: 7px;

    position: relative;

    top:10px;

    left: 35px;

}

.current{

   color: brown;

}

.s2 input{

    width: 15px;

    height: 15px;

}

.s2 span{

    position: relative;

    top:9px;

    left: 28px;

}

.s3 input{

    width: 15px;

    height: 15px;

    position: relative;

    top: -19px;

    left: 150px;

}

.s3 span{

    position: relative;

    top:-20px;

    left: 142px;

}

.btn{

    position: relative;

   

}

    </style>

<body>

    <section id="content">

        <!--头部-->

                <div class="content-header">

                    <a href="javaScript:;" class="current">我要登录</a>

                    <a href="javaScript:;" >我要注册</a>

                </div>

                <div class="main" style="display: block;">

                      <input type="text" name="user" placeholder="&nbsp;&nbsp;用户账号">

                      <input type="text" name="user" placeholder="&nbsp;&nbsp;请输入密码">

                      <input type="submit" value="登&nbsp;&nbsp;录" class="btn">

                      <div class="s2">

                        <input type="checkbox">

                        <span>&nbsp;记住密码</span>

                    </div>

                      <div class="s3">

                        <input type="checkbox">

                        <span>&nbsp;自动登录</span>

                      </div>

                 

                  </div>

                  <div class="main" style="display: none;">

                    <input type="text" name="user" placeholder="&nbsp;&nbsp;手机号码">

                    <input type="text" name="user" placeholder="&nbsp;&nbsp;请输入密码">

                    <input type="text" name="user" placeholder="&nbsp;&nbsp;验证码">

                    <input type="submit" value="登&nbsp;&nbsp;录" class="btn">

                    <div class="s2">

                        <input type="checkbox">

                        <span>&nbsp;记住密码</span>

                    </div>

                      <div class="s3">

                        <input type="checkbox">

                        <span>&nbsp;自动登录</span>

                      </div>

                   

                  </div>

                  </div>

                </div>

    <script>

        //获取元素

       var lis=document.querySelector(".content-header").querySelectorAll("a");

       var content=document.querySelector(".content-header");

       var lis=content.querySelectorAll("a");

       var mains=document.querySelectorAll(".main");

       //for循环绑定点击事件

       for(var i=0;i<lis.length;i++){

           //开始给两个小a,设置索引号

           lis[i].setAttribute("index",i);

           lis[i].οnclick=function(){

               //干掉所有人 其余a清除 class这个类

               for(var i=0;i<lis.length;i++){

                   lis[i].className="";

               }

               //留下我自己

               this.className="current";

               var index=this.getAttribute("index");

               console.log(index);

               //干掉所有人,让其余的main的div 隐藏

               for(var j=0;j<mains.length;j++){

                   mains[j].style.display="none";

               }

               //留下我自己 让对应的main显示出来

               mains[index].style.display="block";

           }

       }

    </script>

</body>

</html>

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值