精华内容
下载资源
问答
  • js实现tab切换效果

    2020-10-20 09:56:56
    本文主要分享了js封装一个tab切换效果的示例代码,具有很好的参考价值,下面跟着小编一起来看下吧
  • Vue.js实现tab切换效果

    2020-10-16 15:56:59
    主要为大家详细介绍了Vue.js实现tab切换效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 主要介绍了js实现tab标签切换效果,功能非常简单,实现了点击切换的效果,推荐给大家,有需要的小伙伴可以参考下。
  • 直接先来个真相吧:【HTML代码】tab1tab2tab3这是TAB切换效果区域1这是TAB切换效果区域2这是TAB切换效果区域3【js】/*** tabs* @author 橡树小屋*/var tabs=function(){function tag(name,elem){return (elem||...

    直接先来个真相吧:

    707792808b3af24a40ea3f97da8153ee.png

    【HTML代码】

    【js】

    /**

    * tabs

    * @author 橡树小屋

    */

    var tabs=function(){

    function tag(name,elem){

    return (elem||document).getElementsByTagName(name);

    }

    //获得相应ID的元素

    function id(name){

    return document.getElementById(name);

    }

    function first(elem){

    elem=elem.firstChild;

    return elem&&elem.nodeType==1? elem:next(elem);

    }

    function next(elem){

    do{

    elem=elem.nextSibling;

    }while(

    elem&&elem.nodeType!=1

    )

    return elem;

    }

    return {

    set:function(elemId,tabId){

    var elem=tag("li",id(elemId));

    var tabs=tag("div",id(tabId));

    var listNum=elem.length;

    var tabNum=tabs.length;

    for(var i=0;i

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

    return function(){

    for(var j=0;j

    if(i==j){

    tabs[j].style.display="block";

    //alert(elem[j].firstChild);

    elem[j].firstChild.className="selected";

    }

    else{

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

    elem[j].firstChild.className="";

    }

    }

    }

    })(i)

    }

    }

    }

    }();

    window.οnlοad=function(){

    tabs.set("nav","menu_con");

    }

    【CSS】

    body{ background:#FFF;}

    a{color:#585858}

    #menu{width:360px;}

    /*-------------------nav样式----------------------*/

    #menu #nav {display:block;width:100%;padding:0;margin:0;list-style:none;

    background:url(../images/bg.gif)}

    #menu #nav li {float:left;width:120px;}

    #menu #nav li a {display:block;line-height:27px;text-decoration:none;padding:0 0 0 5px; text-align:center}

    /*-------------------列表标题样式----------------------*/

    #menu_con{ width:358px; height:135px;border:1px solid #BF9660; border-top:none}

    .selected{background:url(../images/tag_bg.gif);}

    .clear{ clear:both}

    调用方法:

    tabs.set("nav","menu_con");

    代码下载 点击这里

    这个实例只是简单实现了点击切换的效果,还有许多功能可以添加,大家一起动手实践一下吧。

    展开全文
  • javascript实现tab切换效果

    千次阅读 2017-11-27 10:21:05
    这个功能是很久之前实现的,现在发上来,很长一段时间没更新博客了,真惭愧。这个JS代码还有很多修改的空间,先发上来,以后再发个更新的版本吧。 这是效果图: 【HTML代码】 1 2...

    这个功能是很久之前实现的,现在发上来,很长一段时间没更新博客了,真惭愧。这个JS代码还有很多修改的空间,先发上来,以后再发个更新的版本吧。

    这是效果图:

    【HTML代码】

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <div id="menu">
    <!--tag标题-->
        <ul id="nav">
            <li><a href="#"  class="selected">tab1</a></li>
            <li><a href="#"  class="">tab2</a></li>
            <li><a href="#"  class="">tab3</a></li>
            <div style="clear:both"></div>
        </ul>
    <!--二级菜单-->
        <div id="menu_con">
            <div class="tag" style="display:block">
                这是TAB切换效果区域1
             </div>
            <div class="tag" style="display:none">
                这是TAB切换效果区域2   
             </div>
            <div class="tag"  style="display:none">
                这是TAB切换效果区域3
            </div>
    </div>
    </div>

    【js】

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    /**
     * tabs
     * @author   橡树小屋
     */
    var tabs=function(){
        function tag(name,elem){
            return (elem||document).getElementsByTagName(name);
        }
        //获得相应ID的元素
        function id(name){
            return document.getElementById(name);
        }
        function first(elem){
            elem=elem.firstChild;
            return elem&&elem.nodeType==1? elem:next(elem);
        }
        function next(elem){
            do{
                elem=elem.nextSibling; 
            }while(
                elem&&elem.nodeType!=1 
            )
            return elem;
        }
        return {
            set:function(elemId,tabId){
                var elem=tag("li",id(elemId));
                var tabs=tag("div",id(tabId));
                var listNum=elem.length;
                var tabNum=tabs.length;
                for(var i=0;i<listNum;i++){
                        elem[i].onclick=(function(i){
                            return function(){
                                for(var j=0;j<tabNum;j++){
                                    if(i==j){
                                        tabs[j].style.display="block";
                                        //alert(elem[j].firstChild);
                                        elem[j].firstChild.className="selected";
                                    }
                                    else{
                                        tabs[j].style.display="none";
                                        elem[j].firstChild.className="";
                                    }
                                }
                            }
                        })(i)
                }
            }
        }
    }();
    window.onload=function(){
        tabs.set("nav","menu_con");
    }

    【CSS】

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    body{ background:#FFF;}
    a{color:#585858}
    #menu{width:360px;}
    /*-------------------nav样式----------------------*/
    #menu #nav {display:block;width:100%;padding:0;margin:0;list-style:none;
     background:url(../images/bg.gif)}
    #menu #nav li {float:left;width:120px;}
    #menu #nav li a {display:block;line-height:27px;text-decoration:none;padding:0 0 0 5px; text-align:center}
     
    /*-------------------列表标题样式----------------------*/
    #menu_con{ width:358px; height:135px;border:1px solid #BF9660; border-top:none}
    .selected{background:url(../images/tag_bg.gif);}
    .clear{ clear:both}

    调用方法:

    tabs.set("nav","menu_con");

    代码下载 点击这里

    只实现了点击切换的效果。

    展开全文
  • Js 实现tab切换效果

    2016-04-20 17:48:00
    今天商城系统的后台要添加一个Tab切换效果,一开始没有思路想要自己去实践这个效果 从网上找jquery 已经有了很好看的案例,实现之后我来学习下思路是如何完成的 转载于:...

    今天商城系统的后台要添加一个Tab切换的效果,一开始没有思路想要自己去实践这个效果

    从网上找jquery 已经有了很好看的案例,实现之后我来学习下思路是如何完成的

     

    转载于:https://www.cnblogs.com/silences/p/5413674.html

    展开全文
  • 这次,我们在vue项目中,实现一下这个tab切换效果。 tab的切换,一般是点击上方的标题,下方的内容块随之切换,上方的标题栏和下方的内容块是并列的关系,通过标签一一对应,点击相对应的标签id,来实现对应tab的...

    前言:平常,我们游览网站的时候,经常会看见tab标签的切换效果,tab切换效果在前端UI框架中也是很常见的。这次,我们在vue项目中,实现一下这个tab切换效果。

              tab的切换,一般是点击上方的标题,下方的内容块随之切换,上方的标题栏和下方的内容块是并列的关系,通过标签一一对应,点击相对应的标签id,来实现对应tab的切换。

    一、HTML结构

           tab切换第一步先要把html结构写好,搭建页面布局,主要分为两块结构:

    <div id="app">
        <ul class="tab-tilte flex_cen">
            <li @click="cur=0" :class="{active:cur==0}" class="cgBox_l">分钟</li>
            <li @click="inquiryHour(cur=1)" :class="{active:cur==1}" class="cgBox_ll">小时</li>
            <li @click="inquiryDay(cur=2)" :class="{active:cur==2}" class="cgBox_ll">每日</li>
            <li @click="inquiryTotal(cur=3)" :class="{active:cur==3}" class="cgBox_r">汇总</li>
        </ul>
        <div class="tab-content">
            <div v-show="cur==0">
                <table>
                    <tbody>
                        <tr style="background-color:#81b5fe;color:#fff;height:40px;">
                            <td width="25%">开始时间</td>
                            <td width="25%">结束时间</td>
                            <td width="25%">当日<br>件数</td>
                            <td width="25%">当日<br>保费</td>
                        </tr>
                        <tr v-for="item in list1" :key="item.id" class="cellTr">
                            <td>{{item.transDate+''+item.beginTime}}</td>
                            <td>{{item.transDate+''+item.endTime}}</td>
                            <td>{{item.polnumByMinute}}</td>
                            <td>{{item.premByMinute}}</td>
                        </tr>
                    </tbody>
                </table> 
            </div>
            <div v-show="cur==1">
                <table>
                    <tbody>
                        <tr class="trFirst" style="height:40px;">
                            <td width="25%">开始时间</td>
                            <td width="25%">结束时间</td>
                            <td width="25%">当日<br>件数</td>
                            <td width="25%">当日<br>保费</td>
                        </tr>
                        <tr v-for="item in list2" :key="item.index" class="cellTr">
                            <td>{{item.transDate+''+item.beginTime}}</td>
                            <td>{{item.transDate+''+item.endTime}}</td>
                            <td>{{item.polnumByHour}}</td>
                            <td>{{item.premByHour}}</td>
                        </tr>
                    </tbody>
                </table>
            </div>
            <div v-show="cur==2">
                <table>
                    <tbody>
                        <tr style="background-color:#81b5fe;color:#fff;height:40px;">
                            <td width="33.33%">时间</td>
                            <td width="33.33%">件数</td>
                            <td width="33.33%">保费</td>
                        </tr>
                        <tr v-for="item in list3" :key="item.id" class="cellTr">
                            <td>{{item.transDate}}</td>
                            <td>{{item.polnumByDay}}</td>
                            <td>{{item.premByDay}}</td>
                        </tr>
                    </tbody>
                </table>
            </div>
            <div v-show="cur==3">
                <table>
                    <tbody>
                        <tr class="trFirst" style="height:40px;">
                            <td width="50%">当日件数</td>
                            <td width="50%">当日保费</td>
                        </tr>
                        <tr v-for="item in list4" :key="item.index" class="cellTr">
                            <td>{{item.polnumTotal}}</td>
                            <td>{{item.premTotal}}</td>
                        </tr>
                    </tbody>
                </table>
            </div>
        </div>
    </div>

    二、script部分

    <script>
    export default{
    created(){
    //分钟
        this.GLOBAL.get("policy/query/dataReport?reqType=4",'',(res,sta)=> {
            if(sta == 1){
                this.list1 = res.result;
                this.list2 = [];
                this.list3 = [];
                this.list4 = [];
                console.log("请求成功");
            }else if(sta == 0){
                this.GLOBAL.showToast('查询不到,请重试!');
                console.log("请求失败");
            }
        });
    },
    methods:{
    //小时
     inquiryHour(){
        this.GLOBAL.get("policy/query/dataReport?reqType=3",'',(res,sta)=>{
        if(sta == 1){
            this.list2 = res.result;
            this.list3 = [];
            this.list4 = [];
            console.log("请求成功");
        }else if(sta == 0){
            this.GLOBA.showToast('查询不到,请重试!')
            console.log("请求失败");
        }
        });
     },
    //每日
      inquiryDay(){
        this.GLOBAL.get("policy/query/dataReport?reqType=2",'',(res,sta) => {
            if(sta == 1){
                this.list3 = res.result;
                this.list2 = [];
                this.list4 = [];
                console.log("请求成功");
            }else if(sta == 0){
                this.GLOBAL.showToast('查询不到,请重试!');
                console.log("请求失败");
            }
        });
     },
    //汇总
      inquiryTotal(){
        this.GLOBAL.get("policy/query/dataReport?reqType=1",'',(res,sta) =>{
            if(sta == 1){
                this.list4 = res.result;
                this.list2 = [];
                this.list3 = [];
                console.log("请求成功");
            }else if(sta == 0){
                this.GLOBAL.showToast('查询不到,请重试!')
                console.log("请求失败");
            }
        }); 
      },
    },
    mounted(){
    },
    data(){
        return{
         cur:0,
         list1:[],
         list2:[],
         list3:[],
         list4:[],
      };
     },
    };
    </script>

    三、样式部分

    <style scope>
    header>img{display: block;max-width:100%;height:auto;}
    .red{color:red;font-size:16px;padding-left:5px;}
    .totalMon,.total-right{font-weight: bold;font-size: 16px;}
    .dataTitle{margin-bottom:10px;}
    .cgBox_l,.cgBox_r,.cgBox_ll{width: 22%;display: inline-block;height: 34px;line-height: 34px;text-align: center;font-size: 14px;background: #fff;color: #333;border: 1px solid #81b5fe;}
    .cgBox_l {border-top-left-radius: 17px;border-bottom-left-radius: 17px;}
    .cgBox_r {border-top-right-radius: 17px;border-bottom-right-radius: 17px;}
    .tab-tilte .active{background: #81b5fe;color: #fff;}
    .nowDate{text-align: right;padding-top: 15px;display: block;font-size: 16px;}
    table{width:100%;border:1px solid #666;margin-top: 6px;border-spacing: 0;border-collapse: collapse;text-align: center;}
    .input-line{height: 30px;margin-bottom: 10px;}
    .trFirst{background-color:#81b5fe; color:#fff;}
    .tr-total{color:red;font-weight: bold;}
    tr:nth-child(2n){background:#e0ecfb;}
    td{border: 1px solid #ccc;}
    .cellTr{height:30px;}
    </style>

    四、tab切换效果改进语优化

           (1)可以发现当标题和内容不断增多时,我们要不停的添加cur的索引值,因此,有必要改进一下代码的写法;

           (2)利用vue提供的v-for指令遍历得到索引和值,如下所示:

    <div id="app">
        <ul class="tab-list">
            <li v-for="(title,index) in tabTitle" @click="cur=index" :class="{active:cur==index}">{{title}}</li>
        </ul>
        <div class="tab-content">
            <div v-for="(m,index) in tabMain" v-show="cur==index">{{m}}</div>
        </div>
    </div>
    <script type="text/javascript">
    window.onload = function(){
        var app = new Vue({
          el:'#app',
          data:{
            tabTitle:['标题一','标题二','标题三','标题四'],
            tabMain:['内容一','内容二','内容三','内容四'],
            cur:0 //默认选中第一个tab
        }
        })
    }
    </script>

    相关图片:

      

    参考博客:09Vue.js实现tab切换效果--简书 https://www.jianshu.com/p/52441745d769

    如上如有问题,欢迎留言指正,谢谢。

    版权声明:本文为博主原创文章,未经博主允许不得转载 。

     

    展开全文
  • JS实现Tab切换效果

    2019-09-26 12:21:48
    Tab切换效果:依次点击三个按钮,相对应的选项卡随着切换。 HTML代码结构 <body> <div> <input class="active" type="button" value="1"> <input type="button" value="2"> <input ...
  • 利用Vue实现简易tab切换效果 1.1 在我们平时浏览网站的时候,经常看到的特效有图片轮播、导航子菜单的隐藏、tab标签的切换等等。这段时间学习了vue后,开始要写出一些简单的特效。 1.2 实现思路是点击上方的标题,...
  • 演示如图,此效果需要鼠标点击才能切换。   &lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&...
  • 本文实例讲述了JS实现的tab页切换效果。分享给大家供大家参考,具体如下:效果图如下:完整实例代码:/p>"http://www.w3.org/TR/html4/loose.dtd">www.jb51.net JS实现TAB切换#content {width: 400px;height...
  • js实现tab标签切换效果是一款无需jQuery,原生javascript制作的tab切换效果
  • 主要介绍了JS简单实现tab切换效果的多窗口显示功能,可实现响应鼠标事件的文字切换显示效果,涉及javascript页面元素遍历与样式变换相关操作技巧,需要的朋友可以参考下
  • 这篇文章给大家介绍的内容是关于HTML5实现Tab切换(通过js代码),...javascript实现Tab切换*{padding:0px;margin:0px;}ul li {cursor:pointer;float:left;width:100px;height:30px;line-height:30px;text-align:cente...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 24,628
精华内容 9,851
关键字:

js实现tab切换效果