zoukankan      html  css  js  c++  java
  • JQ实现选项卡(jQuery原型插件扩展)

    下边分为两个版本,一种是点击切换选项(index.js),一种是滑过切换选项(index1.js)

    HTML文件:

    jq使用jquery-1.11.3.js版本

    <!DOCTYPE html>
    <html>
    <head lang="en">
        <meta charset="UTF-8">
        <title>jQuery选项卡</title>
        <link rel="stylesheet" href="css/reset.min.css"/>
        <link rel="stylesheet" href="css/index.css"/>
    </head>
    <body>
    <div class="container">
        <!--<span class="select">选项一</span><span>选项二</span><span>选项三</span>-->
        <ul class="tip clear">
            <li class="cur">选项一</li>
            <li>选项二</li>
            <li>选项三</li>
        </ul>
        <div class="contain cur">页卡一</div>
        <div class="contain">页卡二</div>
        <div class="contain">页卡三</div>
    </div>
    <div class="container">
        <!--<span class="select">选项一</span><span>选项二</span><span>选项三</span>-->
        <ul class="tip clear">
            <li class="cur">选项一</li>
            <li>选项二</li>
            <li>选项三</li>
        </ul>
        <div class="contain cur">页卡一</div>
        <div class="contain">页卡二</div>
        <div class="contain">页卡三</div>
    </div>
    <script src="js/jquery-1.11.3.js"></script>
    <!--jQuery原型上扩展的插件-->
    <script src="js/index.js"></script>
    <script type="text/javascript">
        /*$('.container').on('click', '.tip>li', function () {
            $(this).addClass('cur').siblings().removeClass('cur')
                    .parent().siblings('.con').removeClass('cur')
                    .eq($(this).index()).addClass('cur');
        });*/
    
    
        //事件委托:利用事件冒泡传播机制
        // 模拟选项卡的ajax请求
    
        /*$('.tab>.tip>li').mouseover(function () {
            var curIndex = $(this).index();
            // $(this).addClass('cur').siblings().removeClass('cur')
            //     .parent().siblings('.contain')
            //     .eq(curIndex).addClass('cur')
            //     .siblings().removeClass('cur');
    
            $(this).addClass('cur').siblings().removeClass('cur')
                    .parent().siblings('.contain')
                    .each(function (index, item) {
                        //->this:item
                        curIndex === index ? $(this).addClass('cur') : $(this).removeClass('cur');
                    });
        });*/
    </script>
    </body>
    </html>
    

     index.css

    @charset "utf-8";
    .container {
         600px;
        height: 400px;
        margin: 20px auto;
        -webkit-user-select: none;
        -moz-user-select: none;
        -ms-user-select: none;
        user-select: none;
    }
    
    .container .tip li {
        float: left;
         200px;
        text-align: center;
        line-height: 40px;
        font-size: 18px;
        background-color: lightblue;
        cursor: pointer;
    }
    
    .container .tip li.cur {
        background-color: lightsteelblue;
    }
    
    .container .contain {
        display: none;
         600px;
        height: 300px;
        line-height: 300px;
        font-size: 20px;
        text-align: center;
        background-color: lightsteelblue;
    }
    
    .container .contain.cur {
        display: block;
    }
    

     reset.min.css代码:

    body,h1,h2,h3,h4,h5,h6,hr,p,blockquote,dl,dt,dd,ul,ol,li,button,input,textarea,th,td{margin:0;padding:0}body{font-size:12px;font-style:normal;font-family:"5FAE8F6F96C59ED1",Helvetica,sans-serif}small{font-size:12px}h1{font-size:18px}h2{font-size:16px}h3{font-size:14px}h4,h5,h6{font-size:100%}ul,ol{list-style:none}a{text-decoration:none;background-color:transparent}a:hover,a:active{outline-0;text-decoration:none}table{border-collapse:collapse;border-spacing:0}hr{border:0;height:1px}img{border-style:none}img:not([src]){display:none}svg:not(:root){overflow:hidden}html{-webkit-touch-callout:none;-webkit-text-size-adjust:100%}input,textarea,button,a{-webkit-tap-highlight-color:rgba(0,0,0,0)}article,aside,details,figcaption,figure,footer,header,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block}audio:not([controls]),video:not([controls]){display:none;height:0}progress{vertical-align:baseline}mark{background-color:#ff0;color:#000}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}button,input,select,textarea{font-size:100%;outline:0}button,input{overflow:visible}button,select{text-transform:none}textarea{overflow:auto}button,html [type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px}[type="search"]::-webkit-search-cancel-button,[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-input-placeholder{color:inherit;opacity:.54}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}.clear:after{display:block;height:0;content:"";clear:both}

    index.js代码:

    $.fn.extend({
        changeTab: function (index, type) {
            //->this:current tab
            index = index || 0;
            type = type || 'click';
    
            var $list = $(this).find('.tip>li'),
                $contain = $(this).find('.contain');
    
            //->select default
            $list.removeClass('cur').eq(index).addClass('cur');
            $contain.removeClass('cur').eq(index).addClass('cur');
    
            //->click
            var preIndex = index;
            $(this).on(type, function (e) {
                var tar = e.target,
                    $tar = $(tar),
                    tarTag = tar.tagName.toUpperCase();
    
                //->TARGET IS TAB
                if (tarTag === 'LI' && $tar.parent().hasClass('tip')) {
                    //->REMOVE
                    $list.eq(preIndex).removeClass('cur');
                    $contain.eq(preIndex).removeClass('cur');
    
                    //->ADD
                    var curIndex = $tar.index();
                    $tar.addClass('cur');
                    $contain.eq(curIndex).addClass('cur');
                    preIndex = curIndex;
                }
            });
        }
    });

    // $('#tab1').changeTab(0, 'mouseover');
    // $('#tab2').changeTab(2);
    $('.container').each(function () {
    $(this).changeTab();
    });

    index1.js代码:

    $.fn.extend({
        changeTab: function (index, type) {
            $.each(this, function () {
                //->this:current tab
                index = index || 0;
                type = type || 'click';
    
                var $list = $(this).find('.tip>li'),
                    $contain = $(this).find('.contain');
    
                //->select default
                $list.removeClass('cur').eq(index).addClass('cur');
                $contain.removeClass('cur').eq(index).addClass('cur');
    
                //->click
                var preIndex = index;
                $(this).on(type, function (e) {
                    var tar = e.target,
                        $tar = $(tar),
                        tarTag = tar.tagName.toUpperCase();
    
                    //->TARGET IS TAB
                    if (tarTag === 'LI' && $tar.parent().hasClass('tip')) {
                        //->REMOVE
                        $list.eq(preIndex).removeClass('cur');
                        $contain.eq(preIndex).removeClass('cur');
    
                        //->ADD
                        var curIndex = $tar.index();
                        $tar.addClass('cur');
                        $contain.eq(curIndex).addClass('cur');
                        preIndex = curIndex;
                    }
                });
            });
        }
    });
    
    // $('#tab1').changeTab(0, 'mouseover');
    // $('#tab2').changeTab(2);
    $('.container').changeTab(0, 'mouseover');
  • 相关阅读:
    Struts2 文件上传和下载
    Struts2的验证框架简单吗?
    Struts2防止重复提交
    Struts2的标签三大类是什么?
    Struts2的值栈和OGNL牛逼啊
    Struts2牛逼的拦截器,卧槽这才是最牛的核心!
    转载---C# 递归创建文件夹
    转载---C# 冻结 datagridview的列
    C# base64编码转成图片
    转载---C# 复制文件夹下的(内容)到指定文件夹中
  • 原文地址:https://www.cnblogs.com/Scar007/p/7718404.html
Copyright © 2011-2022 走看看