• 放大镜


    1,在html页面引入jquery-1.11.3.js文件

    2,编写js文件然后引入html页面

    /*
    * 功能:放大镜
    * 参数:
    * elem 指最外层的元素
    * pic 指图片路径
    * w 指图片宽度
    * h 指图片高度
    * b 指图片的比例
    */

    function Scale( elem, pic, w, h, b ){
    this.elem = elem;
    this.pic = pic;
    this.w = w;
    this.h = h;
    this.b = b;

    this.init();
    }

    Scale.prototype = {
    init : function(){
    // 创建节点
    // 创建小图片div节点
    var small = $("<div></div>");
    this.elem.append( small );
    // 小图片div中,有img
    var smallImg = $("<img />");
    smallImg.attr({"src":this.pic}).css({"width":this.w, "height":this.h});
    small.append( smallImg );
    // 小图片上的遮罩
    var mask = $("<div></div>");
    mask.css({"width":this.w, "height":this.h, "background":"rgba(0,0,0,.6)"});
    small.append( mask );
    // 小图片上的镜子
    var glass = $("<div></div>");
    glass.css({"width":this.w/this.b, "height":this.h/this.b, "overflow":"hidden", "display":"none"});
    small.append( glass );
    // 小图片上的镜子中的图片
    var glassImg = $("<img />");
    glassImg.attr({"src":this.pic}).css({"width":this.w, "height":this.h});
    glass.append( glassImg );
    // 创建大图片div节点
    var big = $("<div></div>");
    big.css({"width":this.w, "height":this.h, "left":this.w+10, "overflow":"hidden", "display":"none"});
    this.elem.append( big );
    // 大图片div中,有img
    var bigImg = $("<img />");
    bigImg.attr({"src":this.pic}).css({"width":this.w*this.b, "height":this.h*this.b});
    big.append( bigImg );

    // 鼠标在小图片div上移动事件
    this.glass = glass;
    this.glassImg = glassImg;
    this.bigImg = bigImg;
    this.big = big;
    small.bind("mousemove", this.move.bind(this));
    small.bind("mouseenter", this.enter.bind(this));
    small.bind("mouseleave", this.leave.bind(this));
    },
    move : function(e){
    var x = e.clientX - this.elem.offset().left;
    var y = e.clientY - this.elem.offset().top;
    // 居中
    x -= this.w/this.b/2;
    y -= this.h/this.b/2;
    // 边界
    if( x<0 ) x=0;
    if( y<0 ) y=0;
    if( x>this.w-this.w/this.b ) x=this.w-this.w/this.b;
    if( y>this.h-this.h/this.b ) y=this.h-this.h/this.b;
    // 坐标更新
    this.glass.css({"left":x, "top":y});
    this.glassImg.css({"left":-x, "top":-y});
    this.bigImg.css({"left":-x*this.b, "top":-y*this.b});
    },
    enter : function(){
    this.glass.stop().fadeIn();
    this.big.stop().fadeIn();
    },
    leave : function(){
    this.glass.stop().fadeOut();
    this.big.stop().fadeOut();
    }
    }

    3,html文件

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title></title>
    <style>
    #div1{
    position: relative;
    }
    #div1 *{
    position: absolute;
    }
    </style>
    </head>
    <body>
    <div id="div1"></div>
    </body>
    </html>
    <script type="text/javascript" src="jquery-1.11.3.js" ></script>
    <script type="text/javascript" src="Scale.js" ></script>
    <script>
    new Scale( $("#div1"), "bg.jpg", 700, 700, 5 );
    </script>

  • 相关阅读:
    使用JAXB来实现Java合xml之间的转换
    Kinect 骨骼映射---Let me dance for U!
    WebService学习笔记系列(四)
    PHP中出现BOM字符ufeff,PHP去掉诡异的BOM ufeff
    PHP中出现BOM字符ufeff,PHP去掉诡异的BOM ufeff
    WebService学习笔记系列(三)
    把QQ聊天记录插入数据库中
    如何使用SAP CRM Marketing Survey创建一个市场问卷调查
    为什么ABAP整型的1转成string之后,后面会多个空格
    如何用Chrome自带的截屏功能截取超过一个屏幕的网页
  • 原文地址:https://www.cnblogs.com/LHH1314/p/7567582.html
Copyright © 2020-2023  润新知