• 自制tab页


    没事自己弄着玩,写了个tab页。不要当真。想看就看看。希望相互学习。

    效果预览:

    html源码:
     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>tabs</title>
     6     <script type="text/javascript" src="jquery-1.10.1.js"></script>
     7     <script type="text/javascript" src="tabs.js"></script>
     8     <style type="text/css">
     9         body{
    10             background-color: #fff;
    11         }
    12         p{
    13             color:green;
    14             text-align: center;
    15             font-size: 22px;
    16             margin:0px;
    17             padding:0px;
    18         }
    19         .tabs{
    20             /* border: 1px solid green; */
    21         }
    22         .tab_titles{
    23             border: 1px solid #ccc;
    24             margin:1px 1px -1px 5px;
    25             padding: 3px;
    26             border-radius: 10px 10px 0px 0px;
    27             float: left;
    28             cursor: pointer;
    29         }
    30         .tab_titles_inner{
    31             width:100%;
    32             height: 100%;
    33             text-align: center;
    34         }
    35         .tab_selected{
    36             border-bottom: 1px solid white;
    37             margin-bottom:-1px;
    38             border-radius: 10px 10px 0px 0px;
    39         }
    40         .contents{
    41             border:1px solid #ccc;
    42             width:100%;
    43             height:800;
    44             margin-left: 5px;
    45             padding:5px;
    46         }
    47         .clear_float{
    48             height: 0px;
    49             width:0px;
    50             clear: both;
    51         }
    52     </style>
    53 </head>
    54 <body>
    55     <p>PheonixHkbxoic</p>
    56     <div class="tabs">
    57         <div>0</div>
    58         <div>1</div>
    59         <div>2</div>
    60     </div>
    61     <script type="text/javascript">
    62         var title = ["java","c/++","js/jquery"];
    63         var src = [
    64                     'http://www.baidu.com',
    65                     'http://www.360.com',
    66                     'http://www.csdn.net'
    67                 ];
    68         var MyTabs = tabs.init(title,src);
    69         MyTabs.setTabTitlesStyle("width","100px");
    70         MyTabs.select(1);
    71         
    72         // var _$$ = $$(title,src);
    73         // _$$.select(1);
    74         // _$$.setTabTitlesStyle("width","100px");
    75 
    76 
    77     </script>
    78 </body>
    79 </html>
    
    
    


    js源码:
      1 /**
      2  * @FileName   :    tabs.js
      3  * @Author     :    PheonixHkbxoic
      4  * @Mail       :    hkbxoic@gmail.com
      5  * @DateTime   :    2016-07-03 13:18:55
      6  * @Version    :    v1.0.0
      7  * @Description:    Description
      8  */
      9 
     10 (function(w){
     11 
     12     var tabs = function(tab_titles,tab_content_srcs){
     13         return new tabs.fn._init(tab_titles,tab_content_srcs);
     14     }
     15 
     16     tabs.fn = tabs.prototype = {//对象原型,对象属性,由类(构造函数)创建的所有对象都拥有的这些属性
     17         tab_titles : [],
     18         tab_content_srcs : [],
     19         len : 0,
     20         tab_selected : 0,
     21         tab_selectedTitle_color: "purple",
     22         setTabTitles : function(titles){
     23             this.tab_titles = titles;
     24         },
     25         setTabContentSrcs :function(contentSrcs){
     26             this.tab_content_srcs = contentSrcs;
     27         },
     28         setLen :function(len){
     29             this.len = len|0;
     30         },
     31         _init : function(tab_titles,tab_content_srcs){
     32             this.setTabTitles(tab_titles);
     33             this.setTabContentSrcs(tab_content_srcs);
     34             this.setLen(tab_titles.length);
     35             tabs.currentSrc = tab_content_srcs[0];
     36 
     37             //add class to tab contents 
     38             $(".tabs div").each(function(index, el) {
     39                 $(this).addClass("contents");
     40                 $(this).addClass("content_"+index);                
     41             });
     42 
     43             //根据tab title 数组 创建tab title div 
     44             var _title = "<div class="clear_float">.</div>";
     45             $(".tabs").prepend(_title);
     46             for (var i = tab_titles.length-1; i >= 0; i--) {
     47                 _title = "<div id="tab_titles_"+i+"" class="tab_titles"><div class="tab_titles_inner">"+tab_titles[i]+"</div></div>";
     48                 $(".tabs").prepend(_title);
     49             };
     50             //默认选中第0个 
     51             tabs.select(0);
     52             
     53             //添加点击事件
     54             $(".tab_titles").each(function(index, el) {
     55                 $(this).on('click', function(event) {
     56                     event.preventDefault();
     57                     tabs.fn.tab_selected = index;
     58                     tabs.currentSrc = tab_content_srcs[index];
     59                     tabs.select(index);
     60                 });
     61             });
     62             return this;
     63         }
     64     };
     65     tabs.fn._init.prototype = tabs.fn;
     66 
     67     var tab_properties = {//类属性
     68         currentSrc : "",
     69         init : function(tab_titles,tab_content_srcs){
     70             var _tabs = new tabs(tab_titles, tab_content_srcs);
     71             return _tabs;
     72         },
     73         select: function(index){//设置选中第几个
     74             //清除之前选中
     75             $(".tab_titles").each(function(i, el) {
     76                 $(this).removeClass("tab_selected");
     77                 $("#tab_titles_"+i).css('color', 'green');
     78             });
     79             //选中所选
     80             $("#tab_titles_"+index).addClass('tab_selected');
     81             $("#tab_titles_"+index).css('color', tabs.fn.tab_selectedTitle_color);
     82 
     83             tabs.hideContents();//都隐藏
     84             tabs.showContents(index);//默认显示第一个
     85 
     86             //加载数据
     87             tabs.loadHtml(index,tabs.currentSrc);
     88         },
     89         setTabTitlesStyle : function(styleName,styleValue,index){
     90             if (typeof index == 'number'&&index>-1) {
     91                 $("#tab_titles_"+index).css(styleName,styleValue);
     92             }else{
     93                 $(".tab_titles").each(function(index, el) {
     94                     $(this).css(styleName,styleValue);
     95                 });
     96             }
     97         },
     98         hideContents : function(index){//index隐藏
     99             if (typeof index == 'number'&&index>-1) {
    100                 $(".content_"+index).hide();
    101             }else{
    102                 $(".contents").each(function(index, el) {
    103                     $(this).hide();
    104                 });
    105             }
    106         },
    107         showContents : function(index){//index显示
    108             if (typeof index == 'number'&&index>-1){
    109                 $(".content_"+index).show();
    110             }else{
    111                 $(".contents").each(function(index, el) {
    112                     $(this).show();    
    113                 });
    114             }    
    115         },
    116         setSelectedTitlecolor : function(color){
    117             tabs.fn.tab_selectedTitle_color = color;
    118         },
    119         loadHtml : function(index,url){
    120             $(".content_"+index).html("<iframe src=""+url+"" style="height:1000px;100%;border:none;"></iframe>");
    121         }
    122 
    123     }
    124 
    125     tabs.extend = tabs.fn.extend = function(){
    126         var target = arguments[0]||{};
    127         for(name in target){
    128             this[name] = target[name];
    129         }
    130         return target;
    131     };
    132     tabs.extend(tab_properties);    //类属性赋值
    133     tabs.fn.extend(tab_properties);    //对象属性赋值
    134 
    135     w.$$ = w.tabs = tabs;
    136 
    137 })(window);
    
    
    
    
    
    本人博客欢迎转载!但请注明出处!本人博客若有侵犯他人之处,望见谅,请联系我。希望互相关注,互相学习 --PheonixHkbxoic
  • 相关阅读:
    python有哪些关键字?让他自己“吐”出来!
    jquery获取表单元素与回显
    前端开发笔记--flex布局
    Vue-Quill-Editor回显不显示空格的处理办法
    react项目中antd组件库的使用需要注意的问题
    React Native 列表的总结
    是时候了解React Native了
    Android 整合实现简单易用、功能强大的RecyclerView
    linux centos 一键安装环境
    推翻自己和过往,重学自定义View
  • 原文地址:https://www.cnblogs.com/PheonixHkbxoic/p/5637911.html
Copyright © 2020-2023  润新知