zoukankan      html  css  js  c++  java
  • jquery-ui-bootstrap动态添加和删除标签页封装【效果更炫】

    1、效果图

    2、导入js和css

    <link rel="stylesheet" href="css/bootstrap/css/bootstrap.min.css">
    <link rel="stylesheet" type="text/css" href="font/Font-Awesome/css/font-awesome.css">
    <link rel="stylesheet" type="text/css" href="css/jquery-ui-bootstrap/css/custom-theme/jquery-ui-1.10.0.custom.css"/>
    <link rel="stylesheet" type="text/css" href="css/default.css"></head>
    <script type="text/javascript" src="js/jquery-1.9.1.min.js"></script>
    <script type="text/javascript" src="js/bootstrap.min.js"></script>
    <script src="css/jquery-ui-bootstrap/assets/js/jquery-ui-1.10.0.custom.min.js" type="text/javascript"></script>
    <script type="text/javascript" src="js/default.js"></script>
    

      default.css是对tabs效果绘制

    /*jquery-ui-bootstrap tabs*/
    .tabs ul {
    /* border-bottom: 3px solid #39aef5!important;*/
    }
    .tabs ul li:not(:first-child){
    padding-right:15px!important;
     
    }
    .tabs ul li{
    border-top:1px solid #ccc!important;
    border-left:1px solid #ccc!important;
    /*border-bottom: 1px solid #39aef5!important;*/
    }
    .tabs ul li a{
    color:#666!important;
    }
    .tabs ul li span:hover{
    color:#C61010!important;
    }
    .tabs ul li a:hover,
    .tabs ul li:hover,
    .tabs ul li:focus{
    border-bottom: 0!important;
    }
    .tabs ul li:last-child{
    border-right:1px solid #ccc!important;
    }
    .tabs ul li.ui-state-active.ui-tabs-active a,
    .tabs ul li.ui-state-active.ui-tabs-active span,
    .tabs ul li.ui-state-active.ui-tabs-active{
    	/*border-top:3px solid red!important;*/
    	background: #39aef5!important;
    	border-bottom: 2px solid #39aef5!important;
    	color:#ddd!important;
    }
    .tabs ul li.ui-state-active.ui-tabs-active a:hover,
    .tabs ul li.ui-state-active.ui-tabs-active span:hover
    {
    	color:#fff!important;
    }
    .tabs ul li .fa-times-circle{
    position: absolute;
    top: 10px;
    right:18px;
    }
    

      default.js

    $(function(){
    			var tabs = $( "#tabs3" ).tabs();
    					   var tabTemplate = "<li><a href='#{href}'>#{label}</a> <span class='fa fa-times-circle'></span></li>";
    				$('.menu li').click(function(){
    					   //获取tabs下a[href]的值
                            var id="#tabs-"+this.id;
                            //tabs初始化时就有一个li,所以要减1,添加时index会返回-1,再减1变为-2,可根据实际情况而定。这里实际上是通过Id定位#id所在li的位置,然后设置active
                            var index=$("#tabs3").find(id).index()-1;
                             $( "#tabs3" ).tabs('option','active',index);
                              if(index==-2){
                                 addTab(this.innerText,this.id);
                              }
    					    
    				});
    				
    				function addTab(tabTitle,id) {
    				        var label = tabTitle,
    				            id = "tabs-" + id,
    				            li = $( tabTemplate.replace( /#{href}/g, "#" + id ).replace( /#{label}/g, label ) );
    				           var tabContentHtml = $("."+id).html();
    				            var existing=tabs.find("[id='"+id+"']");
    				            if(existing.length==0){
    				            	 tabs.find( ".ui-tabs-nav" ).append( li );
    						        tabs.append( "<div id='" + id + "'><p>" + tabContentHtml + "</p></div>" );
    						        tabs.tabs( "refresh" );
    				            }
    				            
    				          var index=tabs.find('.ui-tabs-nav li').index(existing);
                              //添加时总是返回-1
    				          tabs.tabs('option','active',index);
    				      
    				  		  }
    						// close icon: removing the tab on click
    					    $( "#tabs3" ).on( "click",'span.fa-times-circle', function() {
    					        var panelId = $( this ).closest( "li" ).remove().attr( "aria-controls" );
    					        $( "#" + panelId ).remove();
    					        tabs.tabs( "refresh" );
    					    });
    			
    		})
    

      3、html片段

    <h5>动态标签页</h5>
    	<ul class="menu">
    		<li id="menu1">
    			<a href="#" >菜单1</a>
    		</li>
    		<li id="menu2">
    			<a href="#">菜单2</a>
    		</li>
    		<li id="menu3">
    			<a href="#">菜单3</a>
    		</li>
    	</ul>
    	<div id="tabs3" class="tabs">
    		<ul>
    			<li>
    				<a href="#tabs-4">主页xxxxx</a>
    			</li>
    			
    		</ul>
    		<div id="tabs-4">主页内容</div>
    		
    	</div>
    	<div id="tab_content" style="display: none;">
    		<div class="tabs-menu1">111</div>
    		<div class="tabs-menu2">222</div>
    		<div class="tabs-menu3">333</div>
    	</div>
    

      

  • 相关阅读:
    Android复习(五)设备兼容—>多apk支持
    Android复习(五)设备兼容—>支持刘海屏
    KVC给只读属性进行赋值..
    pods 终端安装 第三方框架的一些命令
    使用SnakeKit怎么设置动画效果 以及 UIView的弹簧动画效果
    Cocoa、Foundation、UIKit、Objective-c、XCode、Interface Builder的概念
    仿写SDWebImage中的一个网络加载图片的框架
    TCP/IP 短链接 长链接 scoket
    init 和 initWithFrame 区别
    JSON XML 数据解析
  • 原文地址:https://www.cnblogs.com/hzhh123/p/5559946.html
Copyright © 2011-2022 走看看