• JQ面向对象的放大镜


    index.html

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8" />
    <title></title>
    <link rel="stylesheet" type="text/css" href="css/style.css"/>
    </head>
    <body>
    <div class="box">
    <div class="smallBox">
    <span class="mark"></span> <!--遮罩层-->
    <span class="floa"></span>
    <img src="img/small.jpg" />
    </div>
    <div class="bigBox">
    <img src="img/big.jpg" />
    </div>
    </div>

    //先导入jq库
    <script src="js/jquery-1.11.3.js" type="text/javascript" charset="utf-8"></script>
    <script src="js/fdj.js" type="text/javascript" charset="utf-8"></script>
    <script type="text/javascript">

    //调用方法
    new fdj();
    </script>
    </body>
    </html>

    style.css

    *{
    margin: 0;
    padding: 0;
    }
    .box {
    171px;
    height: 256px;
    padding: 5px;
    border: 1px solid #ccc;
    position: relative;
    }

    .box .smallBox {
    171px;
    height: 256px;
    background: #eee;
    position: relative;
    }

    .box .floa {
    50px;
    height: 50px;
    border: 1px solid #000;
    background: #fff;
    filter: alpha(opacity: 30);
    opacity: 0.3;
    position: absolute;
    top: 0;
    left: 0;
    display: none;
    }

    .box .mark {
    100%;
    height: 100%;
    position: absolute;
    z-index: 2;
    left: 0px;
    top: 0px;
    background: red;
    filter: alpha(opacity: 0);
    opacity: 0;
    cursor: pointer;
    }

    .box .bigBox {
    position: absolute;
    top: -1px;
    left: 215px;
    171px;
    height: 256px;
    overflow: hidden;
    border: 2px solid #CCC;
    display: none;
    }

    .box .bigBox img {
    position: absolute;
    top: -30px;
    left: -80px;
    }

    fdj.js 

    //面向对象的方式写的。

    function fdj(){
    this.box=$(".box");
    this.smallBox=$(".box .smallBox");
    this.mark=$(".box .smallBox .mark");
    this.floa=$(".box .smallBox .floa")
    this.bigBox=$(".box .bigBox");
    this.bigPic=$(".bigBox img");
    this.init();
    }

    //每个函数都有一个prototype属性

    fdj.prototype={
    init:function(){
    this.overMark();
    this.outerMark();
    this.moveMark();
    },
    overMark:function(){
    this.mark.mouseover($.proxy(this.handleover,this));
    },
    handleover:function(){
    this.floa.show();
    this.bigBox.show();
    },
    outerMark:function(){
    this.mark.mouseout($.proxy(this.handleouter,this));
    },
    handleouter:function(){
    this.floa.hide();
    this.bigBox.hide();
    },
    moveMark:function(){
    this.mark.on("mousemove",$.proxy(this.handlemove,this));
    },
    handlemove:function(evt){
    var left=evt.pageX-this.box.offset().left-this.mark.offset().left-this.floa.outerWidth()/2;
    var top=evt.pageY-this.box.offset().top-this.mark.offset().top-this.floa.outerHeight()/2;

    if(left<0){
    left=0;
    }
    else if(left>this.mark.outerWidth()-this.floa.outerWidth()){
    left=this.mark.outerWidth()-this.floa.outerWidth();
    }
    if(top<0){
    top=0;
    }else if(top>this.mark.outerHeight()-this.floa.outerHeight()){
    top=this.mark.outerHeight()-this.floa.outerHeight();
    }
    this.floa.css({left:left,top:top});
    var pX=left/(this.mark.outerWidth()-this.floa.outerWidth());
    var pY=top/(this.mark.outerHeight()-this.floa.outerHeight());
    this.bigPic.css({
    left:-pX*(this.bigPic.outerWidth()-this.bigBox.outerWidth()),
    top:-pY*(this.bigPic.outerHeight()-this.bigBox.outerHeight())
    });

    }
    }

  • 相关阅读:
    vsftp
    数据类型
    第三篇:表相关操作
    第二篇:库相关操作
    第一篇: 初识数据库
    五 python并发编程之IO模型
    四 python并发编程之协程
    Python GIL
    三 python并发编程之多线程-重点
    三 python并发编程之多线程-理论
  • 原文地址:https://www.cnblogs.com/wyryuebanwan/p/9788280.html
Copyright © 2020-2023  润新知