学习tab栏切换必备,快速上手排它算法

Posted 她还会来吗

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习tab栏切换必备,快速上手排它算法相关的知识,希望对你有一定的参考价值。

前言

之前学习Tab栏操作的时候,了解到一种新的算法思想(排它思想),趁着今天闲暇之余,写下这篇博客,希望可以给读者朋友们提供帮助。

算法简介

何为排他算法呢,简单点来说就是干掉所有人,留下我自己(干就完了),只要牢记这段口诀,相信学习起来就不会很难了!!

何时使用

当存在多个元素的情况下,我们需要给其中的一个元素设置样式(留下我自己),而其它元素则保持原来状态(干掉所有人),这时我们的排它思想就华丽登场了~~~

案例效果

下面是我做的一个tab栏效果,请大家仔细思考🤔其中的排它思想,注意观察上面文字的背景
在这里插入图片描述

代码介绍

 <!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>Document</title>
     <style>
         *{
             margin: 0;
             padding: 0;
             box-sizing: border-box;
         }
         .clearfix::after{
             content: '';
             display: block;
             clear: both;
         }
         li{
             list-style: none;
         }
         a{
             text-decoration: none;
             font-size: 16px;
         }
         .tab{
             width: 700px;
             height: 300px;
             margin: 100px auto;
       
         }
         .tab .tab_list{
             width: 100%;
             height: 40px;
             border-bottom: 2px solid #e4e4e4;
         }
         .tab .tab_list ul li{
             float: left;
             height: 38px;
             line-height: 38px;
             margin: 0 16px 0 0;
             cursor: pointer;
         }
         .tab .tab_con{
             height: 240px;
             margin-top:8px;
             background-color: #fff;
         }
         .tab .tab_con .item{
             height: 240px;
         }
         .tab .tab_con .item .left{
              float: left;
              width: 400px;
              height: 240px;
         }
         .tab .tab_con .item .left img{
            width: 400px;
            height: 240px;
         }
         .item{
             display: none;
         }
         .current{
             background-color: #b1191a;
             color: #fff;
             cursor: pointer;
         }
     </style>
 </head>
 <body>
     <div class="tab">
         <div class="tab_list">
           <ul>
               <li class="current">商品介绍</li>
               <li>规格与包装</li>
               <li>售后保障</li>
               <li>商品评价</li>
               <li>手机社区</li>
           </ul>
         </div>
         <div class="tab_con">
            <div class="item"style="display: block;">
                 <div class="left" >
                    <a href="">
                        <img src="./../课题/img/text.jpg" alt="">
                     </a>
                 </div>
            </div>
            <div class="item ">
                <div class="left">
                   <a href="">
                       <img src="./../课题/img/timg2.jpg" alt="">
                    </a>
                </div>
           </div>
           <div class="item ">
            <div class="left">
               <a href="">
                   <img src="./../轮播图/img/ebfe6248a8e5973ae3f1f1b8cca6f10c.jpeg" alt="">
                </a>
            </div>
       </div>
       <div class="item ">
        <div class="left">
           <a href="">
               <img src="./../轮播图/img/c07e7a7d592b9de571eb86b45f13531b.jpeg" alt="">
            </a>
        </div>
   </div>
   <div class="item ">
    <div class="left">
       <a href="">
           <img src="./../轮播图/img/02374b8e81521da118ef60fc481de725.jpeg" alt="">
        </a>
    </div>
</div>
         </div>
     </div>
 </body>
 <script>
     var tab_list = document.querySelector('.tab_list');
     var lis = tab_list.querySelectorAll('li');
     var items = document.querySelectorAll('.item');
     for(var i = 0; i <lis.length; i++)
     {  // 给选中的标签添加自定义属性,为的是实现tab栏切换时,获取相应的索引  
       lis[i].setAttribute('index',i);
         lis[i].onclick = function(){
           // 给点击的li元素添加背景颜色,没点击的则就不添加
            for(var i = 0; i <lis.length; i++)
            {
                lis[i].className = '';
                // 干掉所有人
            } 
            // 留下我自己
            this.className = 'current';
            // 获取自定义属性
            var index = this.getAttribute('index');
            // 将点击之后的li所对应的图片显示出来,别的则隐藏
            for(var i = 0; i <items.length; i++)
            {    // 干掉所有人
                items[i].style.display = 'none';
            }
            // 留下我自己
            items[index].style.display = 'block';
         }
     }
 </script>
 </html>

结语

在我看来,其实排它算法是最简单的一种算法(也确实是最简单的),熟能生巧,只要多做案例,必然能脑想排它来!!
在这里插入图片描述

以上是关于学习tab栏切换必备,快速上手排它算法的主要内容,如果未能解决你的问题,请参考以下文章

小程序--导航栏切换(tab切换)

微信小程序--Tab栏切换的快速实现

微信小程序[电商]-Tabbar 实现底部导航栏

VS code调试代码快速上手必备知识

Android选项卡片段不调用OnCreateView从tab2切换到tab1

jQuery实现tab栏切换效果