• 第四篇:web之前端之jquery


    前端之jquery

     

    前端之jquery

    本节内容

    1. jquery简介
    2. 选择器和筛选器
    3. 操作元素
    4. 示例

    1. jquery简介

    1 jquery是什么

    • jQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多 javascript高手加入其team。
    • jQuery是继prototype之后又一个优秀的Javascript框架。其宗旨是——WRITE LESS,DO MORE,写更少的代码,做更多的事情。
    • 它是轻量级的js库(压缩后只有21k) ,这是其它的js库所不及的,它兼容CSS3,还兼容各种浏览器 (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。
    • jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理HTML documents、events、实现动画效果,并且方便地为网站提供AJAX交互。
    • jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。
    • jQuery能够使用户的html页保持代码和html内容分离,也就是说,不用再在html里面插入一堆js来调用命令了,只需定义id即可。

    2 什么是jQuery对象?

    • jQuery 对象就是通过jQuery包装DOM对象后产生的对象。
    • jQuery 对象是 jQuery 独有的. 如果一个对象是 jQuery 对象, 那么它就可以使用 jQuery 里的方法: $(“#test”).html();

    比如:

    $("#test").html()   意思是指:获取ID为test的元素内的html代码。其中html()是jQuery里的方法
    

    这段代码等同于用DOM实现代码: document.getElementById(“ test “).innerHTML;

    虽然jQuery对象是包装DOM对象后产生的,但是jQuery无法使用DOM对象的任何方法,同理DOM对象也不能使用jQuery里的方法.乱使用会报错

    约定:如果获取的是 jQuery 对象, 那么要在变量前面加上$.

    var $variable = jQuery 对象

    var variable = DOM 对象

    2. 选择器和筛选器

    2.1. 选择器

    2.1.1 基本选择器

    • $(“*”) //选择所有元素
    • $(“#id”) //选择ID元素
    • $(“.class”) //选择class名
    • $(“element”) //选择标签名
    • $(“.class,p,div”) //多个选择同时选中

    2.1.2 层级选择器

    • $(“.outer div”) //.outer选中下的子孙辈的div标签
    • $(“.outer>div”) //.outber选中下的儿子标签中的div标签
    • $(“.outer+div”) //.outer选中下的毗邻的div标签===>(“.outer”).next(“div”)等价
    • $(“.outer~div”) //.outer选中下的下面兄弟中的div标签===>$(“.outer”).nextAll(“div”)等价

    2.1.3 基本筛选器

    • $(“li:first”) //找到的所有li标签中的第一个标签
    • $(“li:eq(2)”) //找到的所有li标签中的第二个标签
    • $(“li:even”) //找到的所有li标签中计数为偶数的标签
    • $(“li:gt(1)”) //找到的所有li标签中计数大于1的标签

    2.1.4 属性选择器

    • $(‘[id=”div1”]’) //标签中的id属性等于div1的标签
    • $(‘[“alex=”sb”][id]’) //标签中的alex属性等于sb的标签中含有id属性的标签

    2.1.5 表单选择器

    • $(“[type=’text’]”)——->$(“:text”) 注意只适用于input标签 $(“input:checked”)

    2.2. 筛选器

    2.2.1. 过滤筛选器

    • $(“li”).eq(2) //找到的所有li标签的第二个li标签
    • $(“li”).first() //找到的所有li标签的第一个li标签
    • $(“ul li”).hasclass(“test”) //找到的标签中的class中含有test的标签

    2.2.2. 查找筛选器

    • $(“div”).children(“.test”) //div标签中的儿子辈标签中class属性中有test的标签
    • $(“div”).find(“.test”) //div标签中的子孙辈标签中class属性中有test的标签
    • $(“.test”).next() //找到的标签的下一个标签
    • $(“.test”).nextAll() //找到的标签的下面所有兄弟标签
    • $(“.test”).nextUntil() //找到的标签的下面直到util标签为止的所有标签,util里面的标签不包含
    • $(“div”).prev() //找到的标签的上一个标签
    • $(“div”).prevAll() //找到的标签的上面所有兄弟
    • $(“div”).prevUntil() //找到的标签的上面直到util标签为止的所有标签,util里面的标签不包含
    • $(“.test”).parent() //找到的标签的父类标签
    • $(“.test”).parents() //找到的标签的祖宗标签,一直找到根部
    • $(“.test”).parentUntil() //找到的标签的祖宗标签,直到某个祖宗为止,util里面的标签不包含
    • $(“div”).siblings() //找到的标签的所有相邻同级标签(兄弟标签),不包含自己

    2.3. 左侧菜单实现

    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>left_menu</title>
     
        <script src="js/jquery-2.2.3.js"></script>
        <script>
              function show(self){
    //              console.log($(self).text())
                  $(self).next().removeClass("hide")
                  $(self).parent().siblings().children(".con").addClass("hide")
     
              }
        </script>
        <style>
              .menu{
                  height: 500px;
                   30%;
                  
                  float: left;
              }
              .content{
                  height: 500px;
                   70%;
                  
                  float: left;
              }
             .title{
                 line-height: 50px;
                 
                 color: forestgreen;}
     
     
             .hide{
                 display: none;
             }
     
     
        </style>
    </head>
    <body>
     
    <div class="outer">
        <div class="menu">
            <div class="item">
                <div class="title" onclick="show(this);">菜单一</div>
                <div class="con">
                    <div>111</div>
                    <div>111</div>
                    <div>111</div>
                </div>
            </div>
            <div class="item">
                <div class="title" onclick="show(this);">菜单二</div>
                <div class="con hide">
                    <div>111</div>
                    <div>111</div>
                    <div>111</div>
                </div>
            </div>
            <div class="item">
                <div class="title" onclick="show(this);">菜单三</div>
                <div class="con hide">
                    <div>111</div>
                    <div>111</div>
                    <div>111</div>
                </div>
            </div>
     
        </div>
        <div class="content"></div>
     
    </div>
     
    </body>
    </html>

      

    2.4. 实例tab切换

    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>tab</title>
        <script src="js/jquery-2.2.3.js"></script>
        <script>
               function tab(self){
                   var index=$(self).attr("xxx")
                   $("#"+index).removeClass("hide").siblings().addClass("hide")
                   $(self).addClass("current").siblings().removeClass("current")
     
               }
        </script>
        <style>
            *{
                margin: 0px;
                padding: 0px;
            }
            .tab_outer{
                margin: 0px auto;
                 60%;
            }
            .menu{
                
                /*border: 1px solid red;*/
                line-height: 40px;
            }
            .menu li{
                display: inline-block;
            }
            .menu a{
                border-right: 1px solid red;
                padding: 11px;
            }
            .content{
                
                border: 1px solid green;
                height: 300px;
            }
            .hide{
                display: none;
            }
     
            .current{
                
                color: yellow;
                border-top: solid 2px rebeccapurple;
            }
        </style>
    </head>
    <body>
          <div class="tab_outer">
              <ul class="menu">
                  <li xxx="c1" class="current" onclick="tab(this);">菜单一</li>
                  <li xxx="c2" onclick="tab(this);">菜单二</li>
                  <li xxx="c3" onclick="tab(this);">菜单三</li>
              </ul>
              <div class="content">
                  <div id="c1">内容一</div>
                  <div id="c2" class="hide">内容二</div>
                  <div id="c3" class="hide">内容三</div>
              </div>
     
          </div>
    </body>
    </html>

      

    3. 操作元素

    3.1 属性操作

    • $(“p”).text() //p标签的内容text字符串
    • $(“p”).html() //p标签的内部html内容,和innerhtml一样
    • $(“:checkbox”).val() //拿到checkbox的value
    • $(“.test”).attr(“alex”) //拿到class中有test的标签的属性alex的值
    • $(“.test”).attr(“alex”,”sb”) //给class中有test的标签设置属性alex的值为sb。。。
    • $(“.test”).attr(“checked”,”checked”) //给class中有test的标签设置checked,打上勾
    • $(“:checkbox”).removeAttr(“checked”) //移除打上的勾
    • $(“.test”).prop(“checked”,true) //给class中含有test的标签的checked属性设置为true,打上勾
    • $(“.test”).addClass(“hide”) //添加class名为hide

    3.2 选择框正反选

    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script src="js/jquery-2.2.3.js"></script>
        <script>
     
                 function selectall(){
     
                     $("table :checkbox").prop("checked",true)
                 }
                 function che(){
     
                     $("table :checkbox").prop("checked",false)
                 }
     
                 function reverse(){
     
     
    //                 var idlist=$("table :checkbox")
    //                 for(var i=0;i<idlist.length;i++){
    //                     var element=idlist[i];
    //
    //                     var ischecked=$(element).prop("checked")
    //                     if (ischecked){
    //                         $(element).prop("checked",false)
    //                     }
    //                     else {
    //                         $(element).prop("checked",true)
    //                     }
    //
    //                 }
     
     
     
                     $("table :checkbox").each(function(){
                         if ($(this).prop("checked")){
                             $(this).prop("checked",false)
                         }
                         else {
                             $(this).prop("checked",true)
                         }
     
                     });
     
     
     
    //                 li=[10,20,30,40]
    ////                 dic={name:"yuan",sex:"male"}
    //                 $.each(li,function(i,x){
    //                     console.log(i,x)
    //                 })
     
                 }
     
        </script>
    </head>
    <body>
     
         <button onclick="selectall();">全选</button>
         <button onclick="che();">取消</button>
         <button onclick="reverse();">反选</button>
     
         <table border="1">
             <tr>
                 <td><input type="checkbox"></td>
                 <td>111</td>
             </tr>
             <tr>
                 <td><input type="checkbox"></td>
                 <td>222</td>
             </tr>
             <tr>
                 <td><input type="checkbox"></td>
                 <td>333</td>
             </tr>
             <tr>
                 <td><input type="checkbox"></td>
                 <td>444</td>
             </tr>
         </table>
     
     
     
    </body>
    </html>

      

    3.3 模态对话框

    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title>批量编辑</title>
            <!--<link rel="stylesheet" href="css/mycss.css" />-->
            <style>
                *{
        margin: 0;
        padding: 0;
    }
    body {
      font-family: 'Open Sans', sans-serif;
      font-weight: 300;
      line-height: 1.42em;
      color:rebeccapurple;
      
    }
     
    h1 {
      font-size:3em;
      font-weight: 300;
      line-height:1em;
      text-align: center;
      color: #4DC3FA;
    }
    .blue {
        color: #185875;
    }
    .yellow {
        color: #FFF842;
        }
     
    /*!*弹出层罩子*!*/
    #full {
        
        left:0;
        opacity:0.7;
        position:absolute;
        top:0;
        filter:alpha(opacity=30);
    }
     
    .modified {
        
        border:3px solid whitesmoke;
        height:400px;
        left:50%;
        margin:-200px 0 0 -200px;
        padding:1px;
        position:fixed;
        /*position:absolute;*/
        top:50%;
        400px;
        display:none;
    }
    li {
        list-style: none;
        margin: 20px 0 0 50px;
        color: #FB667A;
    }
    input[type="text"] {
      padding: 10px;
      border: solid 1px #dcdcdc;
      /*transition: box-shadow 3s, border 3s;*/
     
    }
     
    .iputbutton {
        margin: 60px 0 0 50px;
        color: whitesmoke;
        
        height: 30px;
         100px;
        border: 1px dashed;
     
    }
     
     
     
     
    .container th h1 {
        font-weight: bold;
        font-size: 1em;
          text-align: left;
          color: #185875;
    }
     
    .container td {
        font-weight: normal;
        font-size: 1em;
    }
     
    .container {
     
         80%;
        margin: 0 auto;
     
    }
     
    .container td, .container th {
        padding-bottom: 2%;
        padding-top: 2%;
          padding-left:2%;
    }
     
    /*单数行*/
    .container tr:first-child {
        
    }
     
    /*偶数行*/
    .container tr:not(first-child){
          
    }
     
    .container th {
        
    }
     
    .container td:last-child {
        color: #FB667A;
    }
    /*鼠标进过行*/
    .container tr:hover {
       
    }
    /*鼠标进过列*/
    .container td:hover {
      
      color: #403E10;
      font-weight: bold;
      transform: translate3d(5px, -5px, 0);
    }
     
     
     
     
     
            </style>
            <script src="jquery-2.2.3.js"></script>
            <script>
                //点击【编辑】显示
     
    $(function () {
     
     
        $("table[name=host] tr:gt(0) td:last-child").click(function (event) {
     
            alert("234");
    //        $("#full").css({height:"100%","100%"});
     
            $(".modified").data('current-edit-obj', $(this));
     
            $(".modified,#full").show();
     
            var hostname = $(this).siblings("td[name=hostname]").text();
            $(".modified #hostname").val(hostname);
            var ip = $(this).siblings("td[name=ip]").text();
            $(".modified #ip").val(ip);
            var port = $(this).siblings("td[name=port]").text();
            $(".modified #port").val(port);
        });
        //取消编辑
        $(".modified #cancel").bind("click", function () {
            $(".modified,#full").hide();
        });
     
    //    确定修改
        $(".modified #ok").bind("click", function (event) {
            var check_status = true;
            var ths = $(".modified").data('current-edit-obj');
            var hostname = $(".modified #hostname").val().trim();
            var ip = $(".modified #ip").val().trim();
            var port = $(".modified #port").val().trim();
            var port = parseInt(port);
            console.log(port);
            //        端口为空设置为22
            if (isNaN(port)) {
                alert("您没有设置正常的SSH端口号,将采用默认22号端口");
                var port = 22;
            }else if ( port > 65535) {
            //            如果端口不是一个数字 或者端口大于65535
                var check_status = false;
                $(".modified #port").css("border-color","red");
                alert("端口号超过范围!")
            };
            // 主机和ip不能是空
            if ( hostname == ""){
                var check_status = false;
                $(".modified #hostname").css("border-color","red");
            }else if (ip == "") {
                var check_status = false;
                $(".modified #ip").css("border-color","red");
            };
            if (check_status == false){
                return false;
            }else{
                //$(this).css("height","60px")   为什么不用$(this),而用$()
                $(ths).siblings("td[name=hostname]").text(hostname);
                $(ths).siblings("td[name=ip]").text(ip);
                $(ths).siblings("td[name=port]").text(port);
                $(".modified,#full").hide();
            };
     
        });
     
    });
     
            </script>
        </head>
        <body>
            <h1>
                <span class="blue"><</span>Homework1<span class="blue">></span> <span class="yellow">HostList</span>
            </h1>
            <div id="full">
                <div class="modified">
                    <li>主机名:<input id="hostname" type="text" value="" />*</li>
                    <li>ip地址:<input id="ip" type="text" value="" />*</li>
                    <li>端口号:<input id="port" type="text" value="" />[0-65535]</li>
                        <div id="useraction">
                         <input class="iputbutton" type="button" name="确定" id="ok" value="确定"/>
                        <input class="iputbutton" type="button" name="取消" id="cancel" value="取消"/>
                        </div>
                </div>
            </div>
            <table class="container" name="host">
                <tr>
                    <th><h1>主机名</h1></th>
                    <th><h1>IP地址</h1></th>
                    <th><h1>端口</h1></th>
                    <th><h1>操作</h1></th>
     
                </tr>
                <tr>
                    <td name="hostname">web01</td>
                    <td name="ip">192.168.2.1</td>
                    <td name="port">22</td>
                    <td>编辑 </td>
                </tr>
                <tr>
                    <td name="hostname">web02</td>
                    <td name="ip">192.168.2.2</td>
                    <td name="port">223</td>
                    <td>编辑 </td>
                </tr>
                <tr>
                    <td name="hostname">web03</td>
                    <td name="ip">192.168.2.3</td>
                    <td name="port">232</td>
                    <td>编辑 </td>
                </tr>
                <tr>
                    <td name="hostname">web04</td>
                    <td name="ip">192.168.2.4</td>
                    <td name="port">232</td>
                    <td>编辑 </td>
                </tr>
            </table>
     
     
        </body>
    </html>

      

    3.4 CSS操作

    • (样式) css(“{color:’red’,backgroud:’blue’}”)
    • (位置) offset() position() scrollTop() scrollLeft()
    • (尺寸) height() width()

    3.5 返回顶部

    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script src="js/jquery-2.2.3.js"></script>
        <script>
     
     
              window.onscroll=function(){
     
                  var current=$(window).scrollTop();
                  console.log(current)
                  if (current>100){
     
                      $(".returnTop").removeClass("hide")
                  }
                  else {
                  $(".returnTop").addClass("hide")
              }
              }
     
     
               function returnTop(){
    //               $(".div1").scrollTop(0);
     
                   $(window).scrollTop(0)
               }
     
     
     
     
        </script>
        <style>
            body{
                margin: 0px;
            }
            .returnTop{
                height: 60px;
                 100px;
                
                position: fixed;
                right: 0;
                bottom: 0;
                color: greenyellow;
                line-height: 60px;
                text-align: center;
            }
            .div1{
                
                font-size: 5px;
                overflow: auto;
                 500px;
            }
            .div2{
                
            }
            .div3{
                
            }
            .div{
                height: 300px;
            }
            .hide{
                display: none;
            }
        </style>
    </head>
    <body>
         <div class="div1 div">
             <p>hello</p>
             <p>hello</p>
             <p>hello</p>
             <p>hello</p>
             <p>hello</p>
             <p>hello</p>
             <p>hello</p>
             <p>hello</p>
             <p>hello</p>
             <p>hello</p>
             <p>hello</p>
             <p>hello</p>
             <p>hello</p>
             <p>hello</p>
             <p>hello</p>
             <p>hello</p>
             <p>hello</p>
             <p>hello</p>
     
         </div>
         <div class="div2 div"></div>
         <div class="div3 div"></div>
         <div class="returnTop hide" onclick="returnTop();">返回顶部</div>
    </body>
    </html>

      

    3.6 滚动菜单
    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    <!DOCTYPE html>
    <html>
    <head lang="en">
        <meta charset="UTF-8">
        <title></title>
        <style>
     
            body{
                margin: 0px;
            }
            img {
                border: 0;
            }
            ul{
                padding: 0;
                margin: 0;
                list-style: none;
            }
            .clearfix:after {
                content: ".";
                display: block;
                height: 0;
                clear: both;
                visibility: hidden;
            }
     
            .wrap{
                 980px;
                margin: 0 auto;
            }
     
            .pg-header{
                
                -webkit-box-shadow: 0 2px 5px rgba(0,0,0,.2);
                -moz-box-shadow: 0 2px 5px rgba(0,0,0,.2);
                box-shadow: 0 2px 5px rgba(0,0,0,.2);
            }
            .pg-header .logo{
                float: left;
                padding:5px 10px 5px 0px;
            }
            .pg-header .logo img{
                vertical-align: middle;
                 110px;
                height: 40px;
     
            }
            .pg-header .nav{
                line-height: 50px;
            }
            .pg-header .nav ul li{
                float: left;
            }
            .pg-header .nav ul li a{
                display: block;
                color: #ccc;
                padding: 0 20px;
                text-decoration: none;
                font-size: 14px;
            }
            .pg-header .nav ul li a:hover{
                color: #fff;
                
            }
            .pg-body{
     
            }
            .pg-body .catalog{
                position: absolute;
                top:60px;
                 200px;
                
                bottom: 0px;
            }
            .pg-body .catalog.fixed{
                position: fixed;
                top:10px;
            }
     
            .pg-body .catalog .catalog-item.active{
                color: #fff;
                
            }
     
            .pg-body .content{
                position: absolute;
                top:60px;
                 700px;
                margin-left: 210px;
                
                overflow: auto;
            }
            .pg-body .content .section{
                height: 500px;
            }
        </style>
    </head>
    <body>
     
        <div class="pg-header">
            <div class="wrap clearfix">
                <div class="logo">
                    <a href="#">
                        <img src="images/3.jpg">
                    </a>
                </div>
                <div class="nav">
                    <ul>
                        <li>
                            <a  href="#">首页</a>
                        </li>
                        <li>
                            <a  href="#">功能一</a>
                        </li>
                        <li>
                            <a  href="#">功能二</a>
                        </li>
                    </ul>
                </div>
     
            </div>
        </div>
        <div class="pg-body">
            <div class="wrap">
                <div class="catalog">
                    <div class="catalog-item" auto-to="function1"><a>第1张</a></div>
                    <div class="catalog-item" auto-to="function2"><a>第2张</a></div>
                    <div class="catalog-item" auto-to="function3"><a>第3张</a></div>
                </div>
                <div class="content">
     
                    <div menu="function1" class="section">
                        <h1>第一章</h1>
                    </div>
                    <div menu="function2" class="section">
                        <h1>第二章</h1>
                    </div>
                    <div menu="function3" class="section">
                        <h1>第三章</h1>
                    </div>
                </div>
            </div>
        </div>
     
        <script type="text/javascript" src="js/jquery-2.2.3.js"></script>
        <script type="text/javascript">
     
     
         window.onscroll=function(){
             var ws=$(window).scrollTop()
             if (ws>50){
                 $(".catalog").addClass("fixed")
             }
             else {
                 $(".catalog").removeClass("fixed")
             }
             $(".content").children("").each(function(){
     
              var offtop=$(this).offset().top;
    //             console.log(offtop)
                 var total=$(this).height()+offtop;
     
                 if (ws>offtop && ws<total){
     
                     if($(window).height()+$(window).scrollTop()==$(document).height()){
                         var index=$(".catalog").children(" :last").css("fontSize","40px").siblings().css("fontSize","12px")
                         console.log(index)
                     target='div[auto-to="'+index+'"]';
                     $(".catalog").children(target).css("fontSize","40px").siblings().css("fontSize","12px")
     
                     }
                     else{
                          var index=$(this).attr("menu");
                     target='div[auto-to="'+index+'"]';
                     $(".catalog").children(target).css("fontSize","40px").siblings().css("fontSize","12px")
                     }
     
     
                 }
     
             })
     
         }
     
        </script>
     
     
    </body>
    </html>

      

    3.7 文档处理

    内部插入

    • $(“#c1”).append(“hello“) //在选中元素的子元素中追加一个元素
    • $(“p”).appendTo(“div”) //将一个元素追加到选中元素的子元素中
    • prepend() //在选中元素的子元素中第一个位置插入一个元素
    • prependTo() //将某个元素插入到选中元素中的第一个子元素位置

    外部插入

    • before() //在选中元素上面插入某个元素
    • insertBefore() //将某个元素插入到选中元素的上面
    • after() //在选中元素下面插入某个元素
    • insertAfter() //将某个元素插入到选中元素的下面
    • replaceWith() //将选中的标签替换成新的dom标签
    • remove() //删除一个标签(彻底删除)
    • empty() //清空某个标签下的所有子标签
    • clone() //克隆某个标签,括号中有个参数设置为true时代表将标签绑定的事件也一起克隆

    3.8 clone方法的应用

    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
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
     
    </head>
    <body>
                <div class="outer">
                    <div class="condition">
     
                            <div class="icons" style="display:inline-block">
                                <a onclick="add(this);"><button>+</button></a>
                            </div>
     
                            <div class="input" style="display:inline-block">
                                <input type="checkbox">
                                <input type="text" value="alex">
                            </div>
                    </div>
                </div>
     
    <script src="js/jquery-2.2.3.js"></script>
        <script>
     
                function add(self){
                    var $duplicate = $(self).parent().parent().clone();
                    $duplicate.find('a[onclick="add(this);"]').attr('onclick',"removed(this)").children("").text("-");
                    $duplicate.appendTo($(self).parent().parent().parent());
     
                }
               function removed(self){
     
                   $(self).parent().parent().remove()
     
               }
     
        </script>
    </body>
    </html>

      

    3.9 事件

    • $(document).ready(function(){}) —————-> $(function(){}) //文档加载完成
    • $(“p”).click(function(){}) //单击事件
    • $(“p”).bind(“click”,function(){}) //绑定事件(将要被废弃,已经有on事件可以替代)
    • $(“ul”).delegate(“li”,”click”,function(){}) //jquery2版本中用它动态绑定子元素事件,在jquery3中用on替代
    • on(events,[selector],[data],fn) //可以动态绑定子元素的某个事件,当插入一个子元素时,该事件会被绑定上

    4 示例

    4.1 拖动面板

    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
    <!DOCTYPE html>
    <html>
    <head lang="en">
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <div style="border: 1px solid #ddd; 600px;position: absolute;">
            <div id="title" style="height: 40px;color: white;">
                标题
            </div>
            <div style="height: 300px;">
                内容
            </div>
        </div>
    <script type="text/javascript" src="jquery-2.2.3.js"></script>
    <script>
        $(function(){
            // 页面加载完成之后自动执行
            $('#title').mouseover(function(){
                $(this).css('cursor','move');
            }).mousedown(function(e){
                //console.log($(this).offset());
                var _event = e || window.event;
                // 原始鼠标横纵坐标位置
                var ord_x = _event.clientX;
                var ord_y = _event.clientY;
     
                var parent_left = $(this).parent().offset().left;
                var parent_top = $(this).parent().offset().top;
     
                $(this).bind('mousemove', function(e){
                    var _new_event = e || window.event;
                    var new_x = _new_event.clientX;
                    var new_y = _new_event.clientY;
     
                    var x = parent_left + (new_x - ord_x);
                    var y = parent_top + (new_y - ord_y);
     
                    $(this).parent().css('left',x+'px');
                    $(this).parent().css('top',y+'px');
     
                })
            }).mouseup(function(){
                $(this).unbind('mousemove');
            });
        })
    </script>
    </body>
    </html>

      

    4.2 放大镜

    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>bigger</title>
        <style>
            *{
                margin: 0;
                padding:0;
            }
            .outer{
                height: 350px;
                 350px;
                border: dashed 5px cornflowerblue;
            }
            .outer .small_box{
                position: relative;
            }
            .outer .small_box .float{
                height: 175px;
                 175px;
                
                opacity: 0.4;
                fill-opacity: 0.4;
                position: absolute;
                display: none;
     
            }
     
            .outer .big_box{
                height: 400px;
                 400px;
                overflow: hidden;
                position:absolute;
                left: 360px;
                top: 0px;
                z-index: 1;
                border: 5px solid rebeccapurple;
                display: none;
     
     
            }
            .outer .big_box img{
                position: absolute;
                z-index: 5;
            }
     
     
        </style>
    </head>
    <body>
     
     
            <div class="outer">
                <div class="small_box">
                    <div class="float"></div>
                    <img src="small.jpg">
     
                </div>
                <div class="big_box">
                    <img src="big.jpg">
                </div>
     
            </div>
     
     
    <script src="js/jquery-2.2.3.js"></script>
    <script>
     
        $(function(){
     
              $(".small_box").mouseover(function(){
     
                  $(".float").css("display","block");
                  $(".big_box").css("display","block")
     
              })
              $(".small_box").mouseout(function(){
     
                  $(".float").css("display","none");
                  $(".big_box").css("display","none")
     
              })
     
     
     
              $(".small_box").mousemove(function(e){
     
                  var _event=e || window.event;
     
                  var float_width=$(".float").width();
                  var float_height=$(".float").height();
     
                  console.log(float_height,float_width);
     
                  var float_height_half=float_height/2;
                  var float_width_half=float_width/2;
                  console.log(float_height_half,float_width_half);
     
     
                   var small_box_width=$(".small_box").height();
                   var small_box_height=$(".small_box").width();
     
     
     
    //  鼠标点距离左边界的长度与float应该与左边界的距离差半个float的width,height同理
                  var mouse_left=_event.clientX-float_width_half;
                  var mouse_top=_event.clientY-float_height_half;
     
                  if(mouse_left<0){
                      mouse_left=0
                  }else if (mouse_left>small_box_width-float_width){
                      mouse_left=small_box_width-float_width
                  }
     
     
                  if(mouse_top<0){
                      mouse_top=0
                  }else if (mouse_top>small_box_height-float_height){
                      mouse_top=small_box_height-float_height
                  }
     
                   $(".float").css("left",mouse_left+"px");
                   $(".float").css("top",mouse_top+"px")
     
                   var percentX=($(".big_box img").width()-$(".big_box").width())/ (small_box_width-float_width);
                   var percentY=($(".big_box img").height()-$(".big_box").height())/(small_box_height-float_height);
     
                  console.log(percentX,percentY)
     
                   $(".big_box img").css("left", -percentX*mouse_left+"px")
                   $(".big_box img").css("top", -percentY*mouse_top+"px")
     
     
              })
     
     
        })
     
     
    </script>
    </body>
    </html>

      

    4.3 动画效果
    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    隐藏与显示
     
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script src="js/jquery-2.2.3.js"></script>
        <script>
        /**
     * Created by yuan on 16/5/5.
     */
     
    $(document).ready(function(){
        $("#hide").click(function(){
            $("p").hide(1000);
        });
        $("#show").click(function(){
            $("p").show(1000);
        });
     
    //用于切换被选元素的 hide() 与 show() 方法。
        $("#toggle").click(function(){
            $("p").toggle();
        })
     
     for (var i= 0;i<7;i++){
    //            颠倒了常规的$(A).append(B)的操作,即不是把B追加到A中,而是把A追加到B中。
                $("<div>").appendTo(document.body);
            }
            $("div").click(function(){
              $(this).hide(2000);
            });
    });
     
        </script>
        <link type="text/css" rel="stylesheet" href="style.css">
    </head>
    <body>
        <!--1 隐藏与显示-->
        <!--2 淡入淡出-->
        <!--3 滑动-->
        <!--4 效果-回调:每一个动画执行完毕之后所能执行的函数方法或者所能做的一件事-->
     
     
        <p>hello</p>
        <button id="hide">隐藏</button>
        <button id="show">显示</button>
        <button id="toggle">隐藏/显示</button>
     
    </body>
    </html>
    淡入淡出
     
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script src="js/jquery-2.2.3.js"></script>
        <script>
        $(document).ready(function(){
       $("#in").click(function(){
           $("#id1").fadeIn(1000);
           $("#id2").fadeIn(1000);
           $("#id3").fadeIn(1000);
     
       });
        $("#out").click(function(){
           $("#id1").fadeOut(1000);
           $("#id2").fadeOut(1000);
           $("#id3").fadeOut(1000);
     
       });
        $("#toggle").click(function(){
           $("#id1").fadeToggle(1000);
           $("#id2").fadeToggle(1000);
           $("#id3").fadeToggle(1000);
     
       });
        $("#fadeto").click(function(){
           $("#id1").fadeTo(1000,0.4);
           $("#id2").fadeTo(1000,0.5);
           $("#id3").fadeTo(1000,0);
     
       });
    });
     
     
     
        </script>
     
    </head>
    <body>
          <button id="in">fadein</button>
          <button id="out">fadeout</button>
          <button id="toggle">fadetoggle</button>
          <button id="fadeto">fadeto</button>
     
          <div id="id1" style="display:none; 80px;height: 80px;</div>
          <div id="id2" style="display:none; 80px;height: 80px;</div>
          <div id="id3" style="display:none; 80px;height: 80px;</div>
     
    </body>
    </html>
    滑动
     
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script src="js/jquery-2.2.3.js"></script>
        <script>
        $(document).ready(function(){
         $("#flipshow").click(function(){
             $("#content").slideDown(1000);
         });
          $("#fliphide").click(function(){
             $("#content").slideUp(1000);
         });
          $("#toggle").click(function(){
             $("#content").slideToggle(1000);
         })
      });
        </script>
        <style>
            #flipshow,#content,#fliphide,#toggle{
                padding: 5px;
                text-align: center;
                
                border:solid 1px red;
     
            }
            #content{
                padding: 50px;
                display: none;
            }
        </style>
    </head>
    <body>
     
        <div id="flipshow">出现</div>
        <div id="fliphide">隐藏</div>
        <div id="toggle">toggle</div>
     
        <div id="content">helloworld</div>
     
    </body>
    </html>
    回调函数
     
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script src="js/jquery-2.2.3.js"></script>
        <script>
     
        $(document).ready(function(){
       $("button").click(function(){
           $("p").hide(1000,function(){
               alert('动画结束')
           })
     
    //       $("p").css('color','red').slideUp(1000).slideDown(2000)
       })
    });
        </script>
    </head>
    <body>
      <button>隐藏</button>
      <p>helloworld helloworld helloworld</p>
     
    </body>
    </html>

      

    京东轮播图

    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script src="js/jquery-2.2.3.js"></script>
        <script src="index.js"></script>
        <script>
            /**
     * Created by yuan on 2016/5/6.
     */
     
    //手动轮播效果
    $(function(){
        var size=$(".img li").size()
        for (var i= 1;i<=size;i++){
            var li="<li>"+i+"</li>"
            $(".num").append(li);
        }
     
     
        //$(".img li").eq(0).show();
        $(".num li").eq(0).addClass("active");
        $(".num li").mouseover(function(){
           $(this).addClass("active").siblings().removeClass("active");
           var index=$(this).index();
           i=index;
           $(".img li").eq(index).fadeIn(1000).siblings().fadeOut(1000);
       });
     
     
    i=0;
    var t=setInterval(move,1500)
     
        function move(){
        i++;
        if(i==size){
            i=0;
        }
        $(".num li").eq(i).addClass("active").siblings().removeClass("active");
        $(".img li").eq(i).stop().fadeIn(1000).siblings().stop().fadeOut(1000);
    };
     
        function moveL(){
        i--;
        if(i==-1){
            i=size-1;
        }
        $(".num li").eq(i).addClass("active").siblings().removeClass("active");
        $(".img li").eq(i).stop().fadeIn(1000).siblings().stop().fadeOut(1000);
    }
     
        $(".out").hover(function(){
            clearInterval(t);
        },function(){
            t=setInterval(move,1500);
        });
     
        $(".out .right").click(function(){
            move()
        });
        $(".out .left").click(function(){
           moveL()
        })
     
    });
        </script>
        <link type="text/css" rel="stylesheet" href="style.css">
        <style>
            *{
        margin: 0;
        padding: 0;
    }
    ul{
        list-style: none;
    }
     
    .out{
         730px;
        height: 454px;
        /*border: 8px solid mediumvioletred;*/
        margin: 50px auto;
        position: relative;
    }
     
    .out .img li{
        position: absolute;
        left: 0;
        top: 0;
    }
     
    .out .num{
        position: absolute;
        left:0;
        bottom: 20px;
        text-align: center;
        font-size: 0;
         100%;
    }
     
     
    .out .btn{
        position: absolute;
        top:50%;
        margin-top: -30px;
         30px;
        height: 60px;
        
        color: black;
        text-align: center;
        line-height: 60px;
        font-size: 40px;
        display: none;
     
     
     
     
     
    }
     
    .out .num li{
         20px;
        height: 20px;
        
        color: #fff;
        text-align: center;
        line-height: 20px;
        border-radius: 50%;
        display: inline;
        font-size: 18px;
        margin: 0 10px;
        cursor: pointer;
    }
    .out .num li.active{
        
    }
     
     
    .out .left{
        left: 0;
    }
    .out .right{
        right: 0;
    }
     
    .out:hover .btn{
        display: block;
    }
        </style>
    </head>
    <body>
         <div class="out">
             <ul class="img">
                 <li><a href="#"><img src="images/1.jpg" alt=""></a></li>
                 <li><a href="#"><img src="images/2.jpg" alt=""></a></li>
                 <li><a href="#"><img src="images/3.jpg" alt=""></a></li>
                 <li><a href="#"><img src="images/4.jpg" alt=""></a></li>
                 <li><a href="#"><img src="images/5.jpg" alt=""></a></li>
             </ul>
     
             <ul class="num">
                 <!--<li class="active">1</li>-->
                 <!--<li>2</li>-->
                 <!--<li>3</li>-->
                 <!--<li>4</li>-->
                 <!--<li>5</li>-->
             </ul>
     
             <div class="left btn"><</div>
             <div class="right btn">></div>
     
         </div>
     
    </body>
    </html>

      

    4.4 扩展
    • jquery.extend({}) //扩展jquery对象的方法
    • jquery.fn.extend({}) //扩展jQuery中dom中的标签对象的方法

    商城菜单

    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <meta name="viewport" content="width=device-width">
        <meta http-equiv="X-UA-Compatible" content="IE=8">
        <title>购物商城</title>
        <style>
     
    *{
        margin: 0;
        padding: 0;
    }
    .hide{
        display:none;
    }
     
     
    .header-nav {
        height: 39px;
        background: #c9033b;
    }
    .header-nav .bg{
        background: #c9033b;
    }
     
    .header-nav .nav-allgoods .menuEvent {
        display: block;
        height: 39px;
        line-height: 39px;
        text-decoration: none;
        color: #fff;
        text-align: center;
        font-weight: bold;
        font-family: 微软雅黑;
        color: #fff;
         100px;
    }
    .header-nav .nav-allgoods .menuEvent .catName {
        height: 39px;
        line-height: 39px;
        font-size: 15px;
    }
     
    .header-nav .nav-allmenu a {
        display: inline-block;
        height: 39px;
        vertical-align: top;
        padding: 0 15px;
        text-decoration: none;
        color: #fff;
        float: left;
    }
     
    .header-menu a{
        color:#656565;
    }
     
    .header-menu .menu-catagory{
        position: absolute;
        
        border-left:1px solid #fff;
        height: 316px;
         230px;
         z-index: 4;
         float: left;
    }
    .header-menu .menu-catagory .catagory {
        border-left:4px solid #fff;
        height: 104px;
        border-bottom: solid 1px #eaeaea;
    }
    .header-menu .menu-catagory .catagory:hover {
        height: 102px;
        border-left:4px solid #c9033b;
        border-bottom: solid 1px #bcbcbc;
        border-top: solid 1px #bcbcbc;
    }
     
    .header-menu .menu-content .item{
        margin-left:230px;
        position:absolute;
        
        height:314px;
        500px;
        z-index:4;
        float:left;
        border: solid 1px #bcbcbc;
        border-left:0;
        box-shadow: 1px 1px 5px #999;
    }
     
        </style>
    </head>
    <body>
     
    <div class="pg-header">
     
        <div class="header-nav">
            <div class="container narrow bg">
                <div class="nav-allgoods left">
                    <a id="all_menu_catagory" href="#" class="menuEvent">
                        <strong class="catName">全部商品分类</strong>
                        <span class="arrow" style="display: inline-block;vertical-align: top;"></span>
                    </a>
                </div>
            </div>
        </div>
        <div class="header-menu">
            <div class="container narrow hide">
                <div id="nav_all_menu" class="menu-catagory">
                    <div class="catagory" float-content="one">
                        <div class="title">家电</div>
                        <div class="body">
                            <a href="#">空调</a>
                        </div>
                    </div>
                    <div class="catagory" float-content="two">
                        <div class="title">床上用品</div>
                        <div class="body">
                            <a href="http://www.baidu.com">床单</a>
                        </div>
                    </div>
                    <div class="catagory" float-content="three">
                        <div class="title">水果</div>
                        <div class="body">
                            <a href="#">橘子</a>
                        </div>
                    </div>
                </div>
     
                <div id="nav_all_content" class="menu-content">
                    <div class="item hide" float-id="one">
     
                        <dl>
                            <dt><a href="#" class="red">厨房用品</a></dt>
                            <dd>
                                <span>| <a href="#" target="_blank" title="勺子">勺子</a> </span>
                            </dd>
                        </dl>
                        <dl>
                            <dt><a href="#" class="red">厨房用品</a></dt>
                            <dd>
                                <span>| <a href="#" target="_blank" title="菜刀">菜刀</a> </span>
     
                            </dd>
                        </dl>
                        <dl>
                            <dt><a href="#" class="red">厨房用品</a></dt>
                            <dd>
                                <span>| <a href="#">菜板</a> </span>
                            </dd>
                        </dl>
                        <dl>
                            <dt><a href="#" class="red">厨房用品</a></dt>
                            <dd>
                                <span>| <a href="#" target="_blank" title="碗">碗</a> </span>
     
                            </dd>
                        </dl>
     
                    </div>
                    <div class="item hide" float-id="two">
                        <dl>
                            <dt><a href="#" class="red">厨房用品</a></dt>
                            <dd>
                                <span>| <a href="#" target="_blank" title="">角阀</a> </span>
     
                            </dd>
                        </dl>
                        <dl>
                            <dt><a href="#" class="red">厨房用品</a></dt>
                            <dd>
                                <span>| <a href="#" target="_blank" title="角阀">角阀</a> </span>
     
                            </dd>
                        </dl>
                        <dl>
                            <dt><a href="#" class="red">厨房用品</a></dt>
                            <dd>
                                <span>| <a href="#" target="_blank" title="角阀">角阀</a> </span>
     
                            </dd>
                        </dl>
     
                    </div>
                    <div class="item hide" float-id="three">
                        <dl>
                            <dt><a href="#" class="red">厨房用品3</a></dt>
                            <dd>
                                <span>| <a href="#" target="_blank" title="角阀">角阀3</a> </span>
     
                            </dd>
                        </dl>
                        <dl>
                            <dt><a href="#" class="red">厨房用品3</a></dt>
                            <dd>
                                <span>| <a href="http://www.meilele.com/category-jiaofa/" target="_blank" title="角阀">角阀3</a> </span>
     
                            </dd>
                        </dl>
                    </div>
                </div>
            </div>
        </div>
     
    </div>
     
     
    <script src="js/jquery-2.2.3.js"></script>
     
    <script type="text/javascript">
        $(document).ready(function () {
     
            Change_Menu('#all_menu_catagory','#nav_all_menu', '#nav_all_content');
     
        });
     
     
     
        function Change_Menu(all_menu_catagory,menu, content) {
            $all_menu_catagory = $(all_menu_catagory);
            $menu = $(menu);
            $content = $(content);
     
            $all_menu_catagory.bind("mouseover", function () {
                $menu.parent().removeClass('hide');
            });
            $all_menu_catagory.bind("mouseout", function () {
                $menu.parent().addClass('hide');
            });
     
            $menu.children().bind("mouseover", function () {
                $menu.parent().removeClass('hide');
                $item_content = $content.find('div[float-id="' + $(this).attr("float-content") + '"]');
                $item_content.removeClass('hide').siblings().addClass('hide');
            });
            $menu.bind("mouseout", function () {
                $content.children().addClass('hide');
                $menu.parent().addClass('hide');
            });
            $content.children().bind("mouseover", function () {
     
                $menu.parent().removeClass('hide');
                $(this).removeClass('hide');
            });
            $content.children().bind("mouseout", function () {
     
                $(this).addClass('hide');
                $menu.parent().addClass('hide');
            });
        }
    </script>
     
     
    </body>
    </html>

      

    编辑框

    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    <!DOCTYPE html>
    <html>
    <head lang="en">
        <meta charset="UTF-8">
        <title></title>
        <style>
            .edit-mode{
                
                padding: 8px;
                text-decoration: none;
                color: white;
            }
            .editing{
                
            }
        </style>
    </head>
    <body>
     
        <div style="padding: 20px">
            <input type="button" onclick="CheckAll('#edit_mode', '#tb1');" value="全选" />
            <input type="button" onclick="CheckReverse('#edit_mode', '#tb1');" value="反选" />
            <input type="button" onclick="CheckCancel('#edit_mode', '#tb1');" value="取消" />
     
            <a id="edit_mode" class="edit-mode" href="javascript:void(0);"  onclick="EditMode(this, '#tb1');">进入编辑模式</a>
     
        </div>
        <table border="1">
            <thead>
            <tr>
                <th>选择</th>
                <th>主机名</th>
                <th>端口</th>
                <th>状态</th>
            </tr>
            </thead>
            <tbody id="tb1">
                <tr>
                    <td><input type="checkbox" /></td>
                    <td edit="true">v1</td>
                    <td>v11</td>
                    <td edit="true" edit-type="select" sel-val="1" global-key="STATUS">在线</td>
                </tr>
                <tr>
                    <td><input type="checkbox" /></td>
                    <td edit="true">v1</td>
                    <td>v11</td>
                    <td edit="true" edit-type="select" sel-val="2" global-key="STATUS">下线</td>
                </tr>
                <tr>
                    <td><input type="checkbox" /></td>
                    <td edit="true">v1</td>
                    <td>v11</td>
                    <td edit="true" edit-type="select" sel-val="1" global-key="STATUS">在线</td>
                </tr>
            </tbody>
        </table>
     
        <script type="text/javascript" src="js/jquery-2.2.3.js"></script>
        <script>
            /*
             监听是否已经按下control键
             */
            window.globalCtrlKeyPress = false;
     
            window.onkeydown = function(event){
                if(event && event.keyCode == 17){
                    window.globalCtrlKeyPress = true;
                }
            };
            window.onkeyup = function(event){
                if(event && event.keyCode == 17){
                    window.globalCtrlKeyPress = false;
                }
            };
     
            /*
             按下Control,联动表格中正在编辑的select
             */
            function MultiSelect(ths){
                if(window.globalCtrlKeyPress){
                    var index = $(ths).parent().index();
                    var value = $(ths).val();
                    $(ths).parent().parent().nextAll().find("td input[type='checkbox']:checked").each(function(){
                        $(this).parent().parent().children().eq(index).children().val(value);
                    });
                }
            }
        </script>
        <script type="text/javascript">
     
    $(function(){
        BindSingleCheck('#edit_mode', '#tb1');
    });
     
    function BindSingleCheck(mode, tb){
     
        $(tb).find(':checkbox').bind('click', function(){
            var $tr = $(this).parent().parent();
            if($(mode).hasClass('editing')){
                if($(this).prop('checked')){
                    RowIntoEdit($tr);
                }else{
                    RowOutEdit($tr);
                }
            }
        });
    }
     
    function CreateSelect(attrs,csses,option_dict,item_key,item_value,current_val){
        var sel= document.createElement('select');
        $.each(attrs,function(k,v){
            $(sel).attr(k,v);
        });
        $.each(csses,function(k,v){
            $(sel).css(k,v);
        });
        $.each(option_dict,function(k,v){
            var opt1=document.createElement('option');
            var sel_text = v[item_value];
            var sel_value = v[item_key];
     
            if(sel_value==current_val){
                $(opt1).text(sel_text).attr('value', sel_value).attr('text', sel_text).attr('selected',true).appendTo($(sel));
            }else{
                $(opt1).text(sel_text).attr('value', sel_value).attr('text', sel_text).appendTo($(sel));
            }
        });
        return sel;
    }
     
    STATUS = [
        {'id': 1, 'value': "在线"},
        {'id': 2, 'value': "下线"}
    ];
     
    BUSINESS = [
        {'id': 1, 'value': "车上会"},
        {'id': 2, 'value': "二手车"}
    ];
     
    function RowIntoEdit($tr){
        $tr.children().each(function(){
            if($(this).attr('edit') == "true"){
                if($(this).attr('edit-type') == "select"){
                    var select_val = $(this).attr('sel-val');
                    var global_key = $(this).attr('global-key');
                    var selelct_tag = CreateSelect({"onchange": "MultiSelect(this);"}, {}, window[global_key], 'id', 'value', select_val);
                    $(this).html(selelct_tag);
                }else{
                    var orgin_value = $(this).text();
                    var temp = "<input value='"+ orgin_value+"' />";
                    $(this).html(temp);
                }
     
            }
        });
    }
     
    function RowOutEdit($tr){
        $tr.children().each(function(){
            if($(this).attr('edit') == "true"){
                if($(this).attr('edit-type') == "select"){
                    var new_val = $(this).children(':first').val();
                    var new_text = $(this).children(':first').find("option[value='"+new_val+"']").text();
                    $(this).attr('sel-val', new_val);
                    $(this).text(new_text);
                }else{
                    var orgin_value = $(this).children().first().val();
                    $(this).text(orgin_value);
                }
     
            }
        });
    }
     
    function CheckAll(mode, tb){
        if($(mode).hasClass('editing')){
     
            $(tb).children().each(function(){
     
                var tr = $(this);
                var check_box = tr.children().first().find(':checkbox');
                if(check_box.prop('checked')){
     
                }else{
                    check_box.prop('checked',true);
     
                    RowIntoEdit(tr);
                }
            });
     
        }else{
     
            $(tb).find(':checkbox').prop('checked', true);
        }
    }
     
    function CheckReverse(mode, tb){
     
        if($(mode).hasClass('editing')){
     
            $(tb).children().each(function(){
                var tr = $(this);
                var check_box = tr.children().first().find(':checkbox');
                if(check_box.prop('checked')){
                    check_box.prop('checked',false);
                    RowOutEdit(tr);
                }else{
                    check_box.prop('checked',true);
                    RowIntoEdit(tr);
                }
            });
     
     
        }else{
            //
            $(tb).children().each(function(){
                var tr = $(this);
                var check_box = tr.children().first().find(':checkbox');
                if(check_box.prop('checked')){
                    check_box.prop('checked',false);
                }else{
                    check_box.prop('checked',true);
                }
            });
        }
    }
     
    function CheckCancel(mode, tb){
        if($(mode).hasClass('editing')){
            $(tb).children().each(function(){
                var tr = $(this);
                var check_box = tr.children().first().find(':checkbox');
                if(check_box.prop('checked')){
                    check_box.prop('checked',false);
                    RowOutEdit(tr);
     
                }else{
     
                }
            });
     
        }else{
            $(tb).find(':checkbox').prop('checked', false);
        }
    }
     
    function EditMode(ths, tb){
        if($(ths).hasClass('editing')){
            $(ths).removeClass('editing');
            $(tb).children().each(function(){
                var tr = $(this);
                var check_box = tr.children().first().find(':checkbox');
                if(check_box.prop('checked')){
                    RowOutEdit(tr);
                }else{
     
                }
            });
     
        }else{
     
            $(ths).addClass('editing');
            $(tb).children().each(function(){
                var tr = $(this);
                var check_box = tr.children().first().find(':checkbox');
                if(check_box.prop('checked')){
                    RowIntoEdit(tr);
                }else{
     
                }
            });
     
        }
    }
     
     
        </script>
     
    </body>
    </html>

      

     
    分类: web
  • 相关阅读:
    24)django-信号
    23)django-缓存
    22)django-中间件
    21)django-csrf(跨站请求伪造)
    20)django-session使用
    19)django-cookie使用
    18)django-模板的过滤器和tag,自定义simple_tag和filter
    17)django-模板的继承与导入
    document.documentElement.clientHeight 和 document.body.clientHeight
    Markdown 入门基础
  • 原文地址:https://www.cnblogs.com/weiman3389/p/6225026.html
Copyright © 2020-2023  润新知