用js实现简单的tab选项卡

 更新时间:2021年09月16日 17:31:18   作者:梦里~花开又半夏…  
这篇文章主要为大家详细介绍了用js实现简单的tab选项卡,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

tab选卡 现实网页的使用频率极高,基本上每个网页都需要使用一个或多个tab选卡

我们可以用js实现简单的tab选卡效果

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>简单的选卡效果</title>
    <style>
        body,ul{
            margin:0;
            padding:0;
        }
        li{
            list-style: none;
        }
        .nav ul{
            display: flex;
        }
        .nav li{
            width: 40%;
            margin: 1rem;
            text-align: center;
            font-size: 1.3rem;
        }
        .selected{
            background-color: yellow;
        }
        .content div{
            display: none
        }
        /* 初始的时候 只让第一块内容显示出来 */
        .content div:nth-child(1){
            display: block;
        }
    </style>
</head>
<body>
    <div class="nav">
        <ul>
            <!-- 初始的时候 让第一个选项被选中 -->
            <li class="selected">导航1</li>
            <li>导航2</li>
            <li>导航3</li>
        </ul>
    </div>
    <div class="content">
        <div>内容1</div>   
        <div>内容2</div>  
        <div>内容3</div>   
    </div>
    <script>
            //获得导航的所有选项
            var li=document.querySelectorAll(".nav li");
            //获得内容的所有div
            var div=document.querySelectorAll(".content div")
            for(var i=0;i<li.length;i++){
                  //关键 让li与div建立联系
                li[i].index=i;
                li[i].onmouseover=function(){
                   //将所有选项样式清空,所有内容隐藏
                    for(var j=0;j<li.length;j++){
                        li[j].className="";
                        div[j].style.display="none"
                    }
                    //为鼠标悬浮的选项设置样式 其对应的div显现出来
                    this.className="selected";
                    div[this.index].style.display="block";
                }
            }
        </script>
</body>

</html>

需要注意的是:this,此时的this相当于li[i]。
li[i].index=i; 这一步必不可少,这是让li与div建立联系的关键,如果直接把div[this.index].style.display=“block”;这句代码改为div[i].style.display=“block”;将会达不到效果,这是因为i的值一直在加一,最后将会等于li.length,使得将出现 不管鼠标在哪个选项 每个div都不会显示的错误结果。

正确的效果图为:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • ES6新特性之Symbol类型用法分析

    ES6新特性之Symbol类型用法分析

    这篇文章主要介绍了ES6新特性之Symbol类型用法,结合形式分析了Symbol类型的功能、使用方法及相关注意事项,需要的朋友可以参考下
    2017-03-03
  • 用js实现猜数字小游戏

    用js实现猜数字小游戏

    这篇文章主要为大家详细介绍了用js实现猜数字小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • JavaScript制作简单的日历效果

    JavaScript制作简单的日历效果

    这篇文章主要为大家介绍了JavaScript制作简单的日历效果实现代码,感兴趣的小伙伴们可以参考一下
    2016-03-03
  • 用JS实现贪吃蛇游戏

    用JS实现贪吃蛇游戏

    这篇文章主要为大家详细介绍了用JS实现贪吃蛇游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • 微信小程序实现简单input正则表达式验证功能示例

    微信小程序实现简单input正则表达式验证功能示例

    这篇文章主要介绍了微信小程序实现简单input正则表达式验证功能,结合实例形式分析了微信小程序input组件事件绑定及正则验证相关操作技巧,需要的朋友可以参考下
    2017-11-11
  • bootstrap的3级菜单样式,支持母版页保留打开状态实现方法

    bootstrap的3级菜单样式,支持母版页保留打开状态实现方法

    下面小编就为大家带来一篇bootstrap的3级菜单样式,支持母版页保留打开状态实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • JS前端组件设计以业务为导向实践思考

    JS前端组件设计以业务为导向实践思考

    这篇文章主要为大家介绍了JS前端组件设计以业务为导向实践思考,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • axios 处理 302 状态码的解决方法

    axios 处理 302 状态码的解决方法

    这篇文章主要介绍了axios 处理 302 状态码的解决方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2018-04-04
  • javascript实现验证IP地址等相关信息代码

    javascript实现验证IP地址等相关信息代码

    本文给大家分享的是一组判断IP地址是否合法,判断子网掩码是否合法,验证输入的网关地址是否合法的javascript代码,十分的简单实用,有需要的小伙伴可以参考下。
    2015-05-05
  • 详解element-ui 表单校验 Rules 配置 常用黑科技

    详解element-ui 表单校验 Rules 配置 常用黑科技

    这篇文章主要介绍了element-ui 表单校验 Rules 配置 常用黑科技,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07

最新评论