zoukankan      html  css  js  c++  java
  • mass Framework tabs插件

    经心思熟虑,发明一种更好的HTML结构,在实现上比原来好太多了。下面是其思路。

    首先是结构层,HTML部分:

            <ul id="first_tabs" class="mass_tabs">
                <li class="section active">
                    <a href="javascript:void(0)" class="trigger">按钮1</a>
                    <div class="panel">
                        面板1
                    </div>
                </li>
                <li class="section">
                    <a href="javascript:void(0)" class="trigger">按钮2</a>
                    <div class="panel">
                        面板2
                    </div>
                </li>
                <li class="section">
                    <a href="javascript:void(0)" class="trigger">按钮3</a>
                    <div class="panel">
                        面板3
                    </div>
                </li>
                <li class="section">
                    <a href="javascript:void(0)" class="trigger">按钮4</a>
                    <div class="panel">
                        面板4
                    </div>
                </li>
            </ul>
    

    当然现在看不出它是个tabs,我们使用CSS修整一下:

                .mass_tabs {
                    position:relative;
                    height:200px;
                    400px;
                    list-style:none;
                    padding-left:20px;
                    padding-top:5px;
                    background:green;
                    overflow:hidden;
                }
                .mass_tabs .section {
                    float:left;
                }
                .mass_tabs .trigger {
                    display:inline-block;
                    height:20px;
                    line-height:20px;
                    padding:1px 10px;
                    margin-left:5px;
                    color:#000;
                    background:#00FF7F;
                    text-align:center;
                    text-decoration:none;
                }
                .mass_tabs .active .trigger{
                    padding-bottom:8px;/* panel.top - parent.padding-top - tigger.height */
                    color:#fff;
                    background:#a9ea00;
                }
                .mass_tabs .panel{
                    display: none;
                    position:absolute;
                    420px;/* parent.width+ parent.padding-left*/
                    height:175px;/* parent.height +  padding-top - tabs.top */
                    top: 30px;
                    left:0px;
                    color:#000;
                    background:#a9ea00;
                }
                .mass_tabs .active .panel{
                    display:block;
                }
    

    最后是用JS绑定事件就行了,通常是点击事件或mouseover事件。

    // by 司徒正美
             $.require("ready,event,attr",function(){
                    $("body").delegate("#first_tabs .trigger", "click", function(e){
                        var sec = $(e.target).parent();
                        if(!sec.hasClass("active")){
                            $("#first_tabs .active").removeClass("active");
                            sec.addClass("active");
                        }
                    });
                });
    

    这个结构的好处在于,利用CSS的继承关系,实现用一个class来切换面板,在JS方面也不用使用index, eq等API了。另外,我们可以在上例中的“按钮1”外面再包一层标签,方便让用更多CSS来装饰它。

    不过上面的代码确实很难在JS文件中看到它是什么,因此我们把它封装一下,改成如下调用:

    // by 司徒正美
                $.require("ready,more/tabs",function(){
                    $("#second_tabs").tabs({
                        active_event: "mouseover"
                    }).tabs("active",2)
                })
    
  • 相关阅读:
    微信小程序实战,与后台交互
    微信小程序开发笔记
    微信小程序 之页面跳转
    小程序(四):模板
    (1)Appium基础操作API
    ADB命令
    移动端测试知识概览
    计算机网络常见面试题
    pip命令
    随笔-记录一些简单内容
  • 原文地址:https://www.cnblogs.com/rubylouvre/p/2367047.html
Copyright © 2011-2022 走看看