琪齐

空想终日彷徨行动方可无惧!

导航

jQuery实例

Posted on 2016-07-21 20:29  琪齐  阅读(162)  评论(0编辑  收藏  举报

jQuery实例

 

左侧菜单

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>左菜单</title>
    <script src="jquery-1.12.4.js"></script>
    <style>
        .menu{
            height: 500px;
            width: 30%;
            background-color: #0e90d2;
            float: left;
        }
        .content{
            height: 500px;
            width: 70%;
            background-color: #303a40;
            float: left;
        }
        .title{
            line-height: 50px;
            background-color: #8c8c8c;
            color: #ffff99;
        }
        .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>8888</div>
                    <div>8888</div>
                    <div>8888</div>
                    <div>8888</div>
                </div>
            </div>
            <div class="item">
                <div class="title" onclick="show(this);">菜单二</div>
                <div class="con">
                    <div>8888</div>
                    <div>8888</div>
                    <div>8888</div>
                    <div>8888</div>
                </div>
            </div>
            <div class="item">
                <div class="title" onclick="show(this);">菜单三</div>
                <div class="con">
                    <div>8888</div>
                    <div>8888</div>
                    <div>8888</div>
                    <div>8888</div>
                </div>
            </div>
        </div>
        <div class="content"></div>
    </div>
<script>
    function show(self){
        $(self).next().removeClass("hide")
        $(self).parent().siblings().children(".con").addClass("hide")
    }
</script>

</body>
</html>

 

TAB菜单

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="jquery-1.12.4.js"></script>
    <style>
        *{
            margin: 0px;
            padding: 0px;
        }
        .tab_outer{
            margin:0 auto;
            width: 60%;
        }
        .menu{
            background-color: #ffff99;
            line-height: 40px;
            cursor:pointer;  //鼠标变小手
        }
        .menu li{
            display: inline-block;
        }
        .menu a{
            border-right:1px solid rebeccapurple ;
            padding: 11px;
        }
        .content{
            background-color: rosybrown;
            border: 1px solid greenyellow;
            height: 300px;
        }
        .hide{
            display: none;
        }
        .content{
            background-color: #2459a2;
            color: #0e90d2;
            border-top:solid 2px darkgreen;
        }
    </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>
<script>
    function tab(self){
        var index=$(self).attr("xxx");
        $("#"+index).removeClass("hide").siblings().addClass("hide");
        $(self).addClass("current").siblings().removeClass("current");
    }
</script>
</body>
</html>

 

滚动菜单

<!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{
            width: 980px;
            margin: 0 auto;
        }

        .pg-header{
            background-color: #303a40;
            -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;
            width: 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;
            background-color: #425a66;
        }
        .pg-body{

        }
        .pg-body .catalog{
            position: absolute;
            top:60px;
            width: 200px;
            background-color: #fafafa;
            bottom: 0px;
        }
        .pg-body .catalog.fixed{
            position: fixed;
            top:10px;
        }

        .pg-body .catalog .catalog-item.active{
            color: #fff;
            background-color: #425a66;
        }

        .pg-body .content{
            position: absolute;
            top:60px;
            width: 700px;
            margin-left: 210px;
            background-color: #fafafa;
            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="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="jquery-2.1.4.min.js"></script>
    <script type="text/javascript">
        window.onscroll=function () {
            var ws=$(window).scrollTop();
            if (ws>50){
                $(".catalog").addClass("fixed");
            }
            else {
                $(".catalog").removeClass("fixed");
            }
           if($(document).height()==$(window).height()+ws){
               $(".catalog").children(":last").css("fontSize","40px").siblings().css("fontSize","16px")
               return;
           }

           $(".content").children().each(function () {

               var offset=$(this).offset().top;
               var total=$(this).height()+offset;
               if (ws>offset && ws<total){
                 var index=$(this).attr("menu");
                   var new_index="[auto-to="+index+"]";
                   console.log(new_index)
                   $(new_index).css("fontSize","40px").siblings().css("fontSize","15px");
               }


           });

        };
    </script>


</body>
</html>

  

动画显示隐藏

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        #flipshow,#content,#fliphide,#toggle{
            padding: 5px;
            text-align: center;
            background-color: #0e90d2;
            border: solid 1px rebeccapurple;
        }
        #content{
            padding: 100px;
            display: none;
            background-color: #c70048;
        }
    </style>
</head>
<body>
    <div id="flipshow">显示</div>
    <div id="fliphide">隐藏</div>
    <div id="toggle">toggle</div>
    <div id="content">hello world</div>
<script src="jquery-1.12.4.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>
</body>
</html>

  

淡入淡出

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>


</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; width: 80px;height: 80px;background-color: blueviolet"></div>
      <div id="id2" style="display:none; width: 80px;height: 80px;background-color: orangered "></div>
      <div id="id3" style="display:none; width: 80px;height: 80px;background-color: darkgreen "></div>

 <script src="jquery-1.12.4.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>
</body>
</html>

  

隐藏显示

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <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>

<script src="jquery-1.12.4.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(1000);
    })
    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>
</body>
</html>

  

返回顶部

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        body{
            margin: 0px;
        }
        .returnTop{
            height: 60px;
            width: 100px;
            background-color: darkgray;
            position: fixed;
            right: 0;
            bottom: 0;
            color: greenyellow;
            line-height: 60px;
            text-align: center;
        }
        .div1{
            background-color: orchid;
            font-size: 5px;
            overflow: auto;
            width: 500px;
        }
        .div2{
            background-color: darkcyan;
        }
        .div3{
            background-color: aqua;
        }
        .div{
            height: 300px;
            width: 70%;
        }
        .hide{
            display: none;
        }
        .returnTop{
            cursor:pointer;
        }
    </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>
<script src="jquery-1.12.4.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>
</body>
</html>

  

添加、删除

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <div class="outer">
           <div class="section">
               <div class="icons" style="display: inline-block">
                   <a onclick="add(this)"><button>+</button></a>
               </div>
               <div class="inputs" style="display: inline-block">
                   <input type="checkbox">
                   <input type="text" value="IP">
               </div>
           </div>
       </div>
<script src="../day15/jquery-1.12.4.js"></script>
<script>
    function add(self){  //添加函数
        var item=$(self).parent().parent().clone();  //克隆找寻的标签
        $(".outer").append(item);  //添加到标签的后面
        item.find("a").children().text("-"); //把该标签的‘+’号改‘-’号
        item.find("a").attr("onclick","remove8(this);")  //绑定删除标签函数
    }
    function remove8(self){  //删除函数
        $(self).parent().parent().remove()
    }
</script>
</body>
</html>

  

模态对话框

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .shade{
            position: fixed;
            left: 0;
            top: 0;
            right: 0;
            bottom: 0;
            background: rgba(0,0,0,.6) ;
            z-index: 20;
        }
        .modal{
            position: fixed;
            left: 50%;
            top: 50%;
            height: 300px;
            width: 400px;
            margin-top: -150px;
            margin-left: -200px;
            z-index: 30;
            border: 1px solid #ddd;
            background-color: white;
            text-align: center;
        }
        .hide{
            display: none;
        }
    </style>
</head>
<body>
    <div>
        <input type="button" value="添加" onclick="Add();" />
        <table border="1">
            <thead>
                <tr>
                    <th >主机名</th>
                    <th >IP</th>
                    <th >端口</th>
                    <th>操作</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td target="host">c1.com</td>
                    <td target="ip">1.1.1.1</td>
                    <td target="port">8888</td>
                    <td onclick="Edit(this);">Edit</td>
                </tr>
               <tr>
                    <td target="host">c2.com</td>
                    <td target="ip">1.1.1.1</td>
                    <td target="port">8888</td>
                    <td onclick="Edit(this);">Edit</td>
                </tr>
            <tr>
                    <td target="host">c3.com</td>
                    <td target="ip">1.1.1.1</td>
                    <td target="port">8888</td>
                    <td onclick="Edit(this);">Edit</td>
                </tr>
            <tr>
                    <td target="host">c4.com</td>
                    <td target="ip">1.1.1.1</td>
                    <td target="port">8888</td>
                    <td onclick="Edit(this);">Edit</td>
                </tr>
            </tbody>
        </table>
    </div>
    <div class="shade hide"></div>
    <div  class="modal hide">
        <form action="" method="get">
            <p>主机名<input type="text" id="host" name="host"></p>
            <p>IP    <input type="text" id='ip' name="ip"></p>
            <p>端口   <input type="text" id='port' name="port"></p>
            <input type="submit" value="提交" onclick="return SubmitForm();">
            <input type="button" value="取消" onclick="HideModal();">
        </form>
    </div>
<script src="jquery-1.12.4.js"></script>
    <script>
        function SubmitForm(){
            var flag = true;
            $(".modal").find('input[type="text"]').each(function(){
                var value = $(this).val();
                if(value.trim().length ==0){
                    flag = false;
                    return false;
                }
            });
            return flag;
        }
        function Edit(ths){
            //ths代指当前点击标签
            //$(ths)表示jquery对象
            $('.shade,.modal').removeClass('hide');
            var prevList = $(ths).prevAll();
            prevList.each(function(){
                var prevList = $(this).text();
                var target = $(this).attr('target');
                $("#"+target).val(text);
            });
        }
        function HideModal(){
            $('.shade,.modal').addClass("hide");
            $(".modal").find("input[text]").val("");

        }
        function Add(){
            $('.shade,.modal').removeClass('hide');
        }
    </script>

</body>
</html>

  

正反选

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>正反选</title>
</head>
<body>
      <button onclick="selectAll();">全选</button>
      <button onclick="cancel();">取消</button>
      <button onclick="reverse();">反选</button>
      <table border="1">
          <tr>
              <td><input type="checkbox"></td>
              <td>8888</td>
          </tr>
          <tr>
              <td><input type="checkbox"></td>
              <td>8888</td>
          </tr>
          <tr>
              <td><input type="checkbox"></td>
              <td>8888</td>
          </tr>
           <tr>
              <td><input type="checkbox"></td>
              <td>8888</td>
          </tr>
      </table>

<script src="jquery-1.12.4.js"></script>
        <script>
            function selectAll() {
                 $("table :checkbox").prop("checked",true);
            }
             function cancel() {
                 $("table :checkbox").prop("checked",false);
            }
            function reverse() {
                $("table :checkbox").each(function(){
                                 if ($(this).prop("checked")){
                                     $(this).prop("checked",false);
                                 }
                                 else {
                                     $(this).prop("checked",true);
            }
            })};

        </script>
</body>
</html>

  

轮播图

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

    <style>
        *{
            margin: 0;
            padding: 0px;

        }
        ul li{
            list-style: none;
        }
        .outer{
            height:454px;
            width: 730px;
            border: dashed cadetblue 5px;
            margin: 0 auto;
            position: relative;
        }
        .num{
            position: absolute;
            left: 0;
            /*top: 0;*/
            bottom: 10px;
            font-size: 0px;
            text-align: center;
            width: 100%;
        }
        .num li{
            height: 20px;
            width: 20px;
            background-color: darkgray;
            border-radius: 60%;
            text-align: center;
            line-height: 20px;
            display: inline-block;
            font-size: 16px;
            margin: 5px;
            cursor: pointer;
        }
        .outer .img li{
            position: absolute;
            left:0 ;
            top: 0;
            height: 454px;
            width: 730px;
        }
        .button{
            height: 60px;
            width: 40px;
            background-color: darkgrey;
            position: absolute;
            /*left: 0px;*/
            top: 50%;
            margin-top: -30px;
            opacity: 0.6;
            font-size: 40px;
            font-weight: bolder;
            text-align: center;
            line-height: 60px;
            display: none;
        }
        .btn_right{
            right: 0;
        }
         .outer:hover .button{
             display: block;
         }
        .outer .num li.current{
            background-color: red;
        }
    </style>
</head>
<body>
     <div class="outer">
         <ul class="img">
             <li><img src="1.jpg"></li>
             <li><img src="2.jpg"></li>
             <li><img src="3.jpg"></li>
             <li><img src="4.jpg"></li>
             <li><img src="5.jpg"></li>
         </ul>
         <ul class="num">
             <li>1</li>
             <li>2</li>
             <li>3</li>
             <li>4</li>
             <li>5</li>
         </ul>

         <div class="btn_left button"> <  </div>
         <div class="btn_right button"> >  </div>
     </div>


<script src="jquery-1.12.4.js"></script>
<script>
        $(function () {

            //手动轮播
            $(".num li").first().addClass("current");
            $(".num li").mouseover(function () {
                $(this).addClass("current").siblings().removeClass("current");
                var index=$(this).index();
                i=index;
                $(".img li").eq(index).stop().fadeIn(1000).siblings().stop().fadeOut(1000);
            });


            //自动轮播
            i=0;
            var time=setInterval(move,1500);
            function move() {
                  i++;

                if(i==5){
                    i=0;
                }
                $(".num li").eq(i).addClass("current").siblings().removeClass("current");
                $(".img li").eq(i).stop().fadeIn(1000).siblings().stop().fadeOut(1000);
            }

            //暂停轮播
            $(".outer").hover(function () {
                clearInterval(time);
            },function () {
                time=setInterval(move,1500);
            });

            //左右按钮移动
            $(".btn_right").click(function () {
                move();
            });

            $(".btn_left").click(function () {
                if (i==0){
                    i=5;
                }
                i=i-2;
                move();
            })
        })

</script>
</body>
</html>

  

 

拖动面板

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        #mb{
            border: 1px solid #ddd;
            width: 600px;
            position: absolute;
        }
        #title{
            background-color: black;
            height: 40px;
            color: white;
            text-align: center;
        }
        #nr{
            height: 300px;
            background-color: #8c8c8c;
            text-align: center;
        }

    </style>
</head>
<body>
    <div id="mb">
        <div id="title">
            标题
        </div>
        <div id="nr">
            内容
        </div>
    </div>
<script type="text/javascript" src="jquery-1.12.4.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>

  

放大镜

<!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: 0px;
                    padding: 0px;
                }
                    .outer{
                position:relative;
                width:350px;
                height:350px;
                /*margin-bottom:5px;*/
                border:5px solid rebeccapurple;
            }

            .outer .small-box{
                position: relative;
                z-index: 1;
            }
            .outer .small-box .mark{
                position: absolute;
                display: block;
                width: 350px;
                height: 350px;
                background-color: #fff;
                filter: alpha(opacity=0);
                opacity: 0;
                z-index: 10;
            }
            .outer .small-box .float-box{
                display: none;
                width: 175px;
                height: 175px;
                position: absolute;
                background: #DAEEFC;
                filter: alpha(opacity=40);
                opacity: 0.4;
            }
            .outer .big-box{
                /*display:none;*/
                position: absolute;
                top: 0;
                left: 351px;
                width: 400px;
                height: 400px;
                overflow: hidden;
                border: 5px dashed #ccc;
                z-index: 1;
            }
            .outer .big-box img{
                position: absolute;
                z-index: 5
            }
    </style>
</head>
<body>

                <div  class="outer">
                    <div  class="small-box">
                        <div  class="mark"></div>
                        <div  class="float-box" ></div>
                        <img width="350" height="350" src="../day15/small.jpg">
                    </div>
                    <div class="big-box">
                        <img width="800px" height="800px" src="../day15/big.jpg" >
                    </div>
                </div>






<script src="../day15/jquery-1.12.4.js"></script>

<script>
   $(function(){
        $(".mark").mouseover(function () {
            $(".float-box").css("display","block")
            $(".big-box").css("display","block")
        });

        $(".mark").mouseout(function () {
            $(".float-box").css("display","none")
            $(".big-box").css("display","none")
        });



        $(".mark").mousemove(function (e) {

            var _event = e || window.event;  //兼容多个浏览器的event参数模式

            var float_box_width  = $(".float-box")[0].offsetWidth;
            var float_box_height = $(".float-box")[0].offsetHeight;//175,175


            var float_box_width_half  =  float_box_width / 2;
            var float_box_height_half =  float_box_height/ 2;//87.5,87.5


            var small_box_width  =  $(".outer")[0].offsetWidth;
            var small_box_height =  $(".outer")[0].offsetHeight;//360,360


//  鼠标点距离左边界的长度与float应该与左边界的距离差半个float的width,height同理
            var mouse_left = _event.clientX   - float_box_width_half;
            var mouse_top = _event.clientY  - float_box_height_half;

            console.log(_event.clientX,_event.clientY);
            console.log(small_box_width - float_box_width)


            if (mouse_left < 0) {
                mouse_left = 0;
            } else if (mouse_left > small_box_width - float_box_width) {
                mouse_left = small_box_width - float_box_width;
            }
            if (mouse_top < 0) {
                mouse_top = 0;
            } else if (mouse_top > small_box_height - float_box_height) {
                mouse_top = small_box_height - float_box_height;
            }

            $(".float-box").css("left",mouse_left + "px");
            $(".float-box").css("top",mouse_top + "px");

            //小图移动一个像素,对应大图应该移动几个像素?
            //思路:用大图可移动的像素数/小图可移动的像素数
            var percentX = ($(".big-box img")[0].offsetWidth - $(".big-box")[0].offsetWidth) / (small_box_width - float_box_width);
            var percentY = ($(".big-box img")[0].offsetHeight - $(".big-box")[0].offsetHeight) / (small_box_height - float_box_height);
            console.log($(".big-box img")[0].offsetWidth,$(".big-box")[0].offsetWidth,small_box_width,float_box_width)
            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>

  

购物菜单

<!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: 0px;
                    padding: 0px;
                }
                    .outer{
                position:relative;
                width:350px;
                height:350px;
                /*margin-bottom:5px;*/
                border:5px solid rebeccapurple;
            }

            .outer .small-box{
                position: relative;
                z-index: 1;
            }
            .outer .small-box .mark{
                position: absolute;
                display: block;
                width: 350px;
                height: 350px;
                background-color: #fff;
                filter: alpha(opacity=0);
                opacity: 0;
                z-index: 10;
            }
            .outer .small-box .float-box{
                display: none;
                width: 175px;
                height: 175px;
                position: absolute;
                background: #DAEEFC;
                filter: alpha(opacity=40);
                opacity: 0.4;
            }
            .outer .big-box{
                /*display:none;*/
                position: absolute;
                top: 0;
                left: 351px;
                width: 400px;
                height: 400px;
                overflow: hidden;
                border: 5px dashed #ccc;
                z-index: 1;
            }
            .outer .big-box img{
                position: absolute;
                z-index: 5
            }
    </style>
</head>
<body>

                <div  class="outer">
                    <div  class="small-box">
                        <div  class="mark"></div>
                        <div  class="float-box" ></div>
                        <img width="350" height="350" src="../day15/small.jpg">
                    </div>
                    <div class="big-box">
                        <img width="800px" height="800px" src="../day15/big.jpg" >
                    </div>
                </div>






<script src="../day15/jquery-1.12.4.js"></script>

<script>
   $(function(){
        $(".mark").mouseover(function () {
            $(".float-box").css("display","block")
            $(".big-box").css("display","block")
        });

        $(".mark").mouseout(function () {
            $(".float-box").css("display","none")
            $(".big-box").css("display","none")
        });



        $(".mark").mousemove(function (e) {

            var _event = e || window.event;  //兼容多个浏览器的event参数模式

            var float_box_width  = $(".float-box")[0].offsetWidth;
            var float_box_height = $(".float-box")[0].offsetHeight;//175,175


            var float_box_width_half  =  float_box_width / 2;
            var float_box_height_half =  float_box_height/ 2;//87.5,87.5


            var small_box_width  =  $(".outer")[0].offsetWidth;
            var small_box_height =  $(".outer")[0].offsetHeight;//360,360


//  鼠标点距离左边界的长度与float应该与左边界的距离差半个float的width,height同理
            var mouse_left = _event.clientX   - float_box_width_half;
            var mouse_top = _event.clientY  - float_box_height_half;

            console.log(_event.clientX,_event.clientY);
            console.log(small_box_width - float_box_width)


            if (mouse_left < 0) {
                mouse_left = 0;
            } else if (mouse_left > small_box_width - float_box_width) {
                mouse_left = small_box_width - float_box_width;
            }
            if (mouse_top < 0) {
                mouse_top = 0;
            } else if (mouse_top > small_box_height - float_box_height) {
                mouse_top = small_box_height - float_box_height;
            }

            $(".float-box").css("left",mouse_left + "px");
            $(".float-box").css("top",mouse_top + "px");

            //小图移动一个像素,对应大图应该移动几个像素?
            //思路:用大图可移动的像素数/小图可移动的像素数
            var percentX = ($(".big-box img")[0].offsetWidth - $(".big-box")[0].offsetWidth) / (small_box_width - float_box_width);
            var percentY = ($(".big-box img")[0].offsetHeight - $(".big-box")[0].offsetHeight) / (small_box_height - float_box_height);
            console.log($(".big-box img")[0].offsetWidth,$(".big-box")[0].offsetWidth,small_box_width,float_box_width)
            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>

  

编辑框

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        .edit-mode{
            background-color: #b3b3b3;
            padding: 8px;
            text-decoration: none;
            color: white;
        }
        .editing{
            background-color: #f0ad4e;
        }
    </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="jquery-1.12.4.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')){
            // 是否已经选中,
			// 如果没有选中,进入编辑模式
			// 如果已经选中,退出编辑模式
			// checkbox 默认事件优先于自定义事件
            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');
                // "STATUS" window[global_key]
				// 生成select标签,并且将其设置默认值 select_val
                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){
    // mode= #edit_mode => 用于检测用户是否点击进入编辑模式
	// tb = #tb1        => table中的tbody
    if($(mode).hasClass('editing')){

        $(tb).children().each(function(){
            // tr = $(this); => 循环的当前行

            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){
    // mode= #edit_mode => 用于检测用户是否点击进入编辑模式
	// tb = #tb1        => table中的tbody
    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>

  

 

  

未完待续...