登录  /  注册
博主信息
博文 18
粉丝 0
评论 0
访问量 13519
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
JQuery制作tab选项卡
八七乱乱
原创
990人浏览过

寒假在家做作业,在练习仿PHP中文网的时候,其中有一个tab选项卡的问题,花了点时间,把它做出来了,现在做个笔记。

先看页面结构代码

 <div class="tab-news ">
                <ul class="tab">
                    <li class="on"><a href="">技术文章</a></li>
                    <li><a href="">网站源码</a></li>
                    <li><a href="">原生手册</a></li>
                    <li><a href="">推荐博文</a></li>
                </ul>
                <ul class="tab-list">
                    <li>11111111111111111</li>
                    <li>22222222222222222</li>
                    <li>33333333333333333</li>
                    <li>4444444444444444</li>
                </ul>
 </div>

CSS样式规则

  .tab-news .tab {
   display: flex;
   margin: 0 -10px 10px -10px;
   line-height: 29px;
   border-bottom: 1px solid #e9e9e9;
}

.tab-news .tab li:nth-child(1) {
   margin-left: 1em;
}

tab-news .tab li {
   margin-right: 1em;
   padding-bottom: 5px;
}

.tab-news .tab .on a {
   position: relative;
   top: -1px;
}
 .tab-news .tab .on {
   position: relative;
   top: 1px;
   border-bottom: 1px solid red;
}

  .tab-news .tab-list {
   position: relative;
}

.tab-news .tab-list li {
   width: 100%;
   line-height: 30px;
   position: absolute;
   display: none;
}
 .tab-news .tab-list li:nth-child(1) {
   display: block;
}
 .tab-news .tab-list li a:nth-child(1) {
   text-transform: uppercase;
   color: #aaa;
   display: inline-block;
   line-height: 12px;
   padding-right: 0.5em;
   border-right: 1px solid #aaa;
}
 .tab-news .tab-list li a:nth-child(2) {
   padding-left: 1em;
}
.tab-news .tab-list li span {
   float: right;
   color: red;

}

最后是JS代码

<script>
   $(function () {
           $('.tab li').hover(function () {
           $(this).addClass('on').siblings('li').removeClass('on');
             var index = $(this).index();
            var aa = $(this).parent().siblings().children();
            $(this).parent().siblings().children().eq(index).show().siblings().hide();
        }, function () {
       })
    })
</script>

为了方便测试,我把代码发出来。

实例

<!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>仿站PHP中文网</title>
      <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.js"></script>
<style>
  .tab-news .tab {
    display: flex;
    margin: 0 -10px 10px -10px;
    line-height: 29px;
    border-bottom: 1px solid #e9e9e9;
}

.tab-news .tab li:nth-child(1) {
    margin-left: 1em;
}

tab-news .tab li {
    margin-right: 1em;
    padding-bottom: 5px;
}

.tab-news .tab .on a {
    position: relative;
    top: -1px;
}
 .tab-news .tab .on {
    position: relative;
    top: 1px;
    border-bottom: 1px solid red;
}
  .tab-news .tab-list {
    position: relative;
}

.tab-news .tab-list li {
    width: 100%;
    line-height: 30px;
   position: absolute;
    display: none;
}
 .tab-news .tab-list li:nth-child(1) {
    display: block;
}
 .tab-news .tab-list li a:nth-child(1) {
    text-transform: uppercase;
    color: #aaa;
    display: inline-block;
    line-height: 12px;
    padding-right: 0.5em;
    border-right: 1px solid #aaa;
}
 .tab-news .tab-list li a:nth-child(2) {
    padding-left: 1em;
}
.tab-news .tab-list li span {
    float: right;
    color: red;
}
</style>
</head>
<body>
            <div class="tab-news bg-white radius">
                <ul class="tab">
                    <li class="on"><a href="">技术文章</a></li>
                    <li><a href="">网站源码</a></li>
                    <li><a href="">原生手册</a></li>
                    <li><a href="">推荐博文</a></li>
                </ul>
                <ul class="tab-list">
                    <li>11111111111111111</li>
                    <li>22222222222222222</li>
                    <li>33333333333333333</li>
                    <li>44444444444444444</li>
                </ul>
                <script>
                    $(function () {
                        $('.uimg').hover(function () {
                            $('.userbox').slideDown(500);
                        }, function () {
                        });
                        $('.userbox').hover(function () {
                            $('.userbox').slideDown(500);
                        }, function () {
                            $('.userbox').slideUp(500);
                        });
                        $('.tab li').hover(function () {
                            $(this).addClass('on').siblings('li').removeClass('on');
                            /*给鼠标划过的li添加.on样式,显示红色下划线,同时要匹配同级li,清除掉同级li标签中的.on样式*/
                            var index = $(this).index();
                            /*获取当前每个li的序列号*/
                            // console.log(index);
                            var aa = $(this).parent().siblings().children();
                            // console.log(aa);
                            /*
                                 遍历当前元素的祖先的同级的所有子元素。
                                 $(this):当前元素,.tab li
                                 .parent():遍历祖先
                                 .siblings():遍历同级
                                 .children():遍历子元素
                             */
                            $(this).parent().siblings().children().eq(index).show().siblings().hide();
                            /*
                             * 让当前.tab li的序号与 .tab-list 中的li的序号相对应,让其显示,同级的li让其隐藏
                             *
                             */
                        }, function () {
                        })

                    })
                </script>
            </div>

运行实例 »

点击 "运行实例" 按钮查看在线实例

批改状态:合格

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学