zoukankan      html  css  js  c++  java
  • jQuery实现 图片的局部放大效果

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title></title>
    <script src="images/jquery-1.8.2.min.js" type="text/javascript"></script>
    <style type="text/css" >
    #bigimg { position:absolute;display:none; overflow:hidden; height:400px; 400px;margin-left:200px;margin-top:-20px; }
    #smalldiv{position:absolute; display:none;}
    </style>
    <script type="text/javascript">
    $(function () {
    var count = 0;

    $("#img").mousemove(function (e) {
    var smalldiv = $("#smalldiv");
    var ZoomSizeWidth = $("#img1").width() / $("#img_zoom").width(); //宽放大的倍数
    var ZoomSizeHeight = $("#img1").height() / $("#img_zoom").height();//高放大的倍数
    $("#bigimg").show();
    smalldiv.show();
    var mouseX = e.pageX + 5;
    var mouseY = e.pageY + 5;


    if (e.pageX < $(this).offset().left + smalldiv.width() / 2) {//当鼠标的X坐标小于图片与div遮罩层的x坐标和是divx=0;
    divX = 0;
    }
    else if (e.pageX > $(this).offset().left + smalldiv.width() / 2 && e.pageX < $(this).offset().left + $(this).width() - smalldiv.width() / 2) {//鼠标的X坐标在图片内部并且小于图片最右边的X坐标
    divX = e.pageX - $(this).offset().left - smalldiv.width() / 2;
    }
    else if (e.pageX > $(this).offset().left + $(this).width() - smalldiv.width() / 2) {//鼠标的X坐标大于图片的最右边的X坐标 (Y轴同理)
    divX = $(this).width() - smalldiv.width();
    }

    if (e.pageY < $(this).offset().top + smalldiv.height() / 2) {
    divY = 0;
    }
    else if (e.pageY > $(this).offset().top + smalldiv.height() / 2 && e.pageY < $(this).offset().top + $(this).height() - smalldiv.height() / 2) {
    divY = e.pageY - $(this).offset().top - smalldiv.height() / 2;
    }
    else if (e.pageY > $(this).offset().top - smalldiv.height()) {
    divY = $(this).height() - smalldiv.height();
    }

    $("#bigimg").css("top", mouseY).css("left", mouseX);
    smalldiv.css("top", divY).css("left", divX);
    smalldiv.appendTo("#img");
    var tempX = smalldiv.offset().left - $(this).offset().left;//通过对大图的位置偏移来起到放大的效果
    var tempY = smalldiv.offset().top - $(this).offset().top;
    $("#img1").css("top", -tempY * ZoomSizeHeight).css("left", -tempX * ZoomSizeWidth);
    });

    $("#img").mouseleave(function (e) {
    $("#smalldiv").hide();
    $("#bigimg").hide();
    });


    })
    </script>
    </head>
    <body>
    <div id="img" style=" 200px; height:200px;margin-left:200px; position:relative; margin-top:30px"><img alt="图片" src="images/Desert.jpg" id="img_zoom" width="200" height="200"/></div>
    <div id="bigimg" ><img alt="放大后图片" id="img1" src="images/Desert.jpg" width="800px" height="800px" style="position:absolute" /></div>
    <div id="smalldiv" style="50px; background-color: rgba(0,0,0,0.5); height:50px; border:1px solid gray; "></div>
    </body>
    </html>

    文章摘自:http://blog.csdn.net/kai161/article/details/9384375

  • 相关阅读:
    「小程序JAVA实战」java-sesion的状态会话与无状态会话(38)
    「小程序JAVA实战」小程序 loading 提示框与页面跳转(37)
    「小程序JAVA实战」小程序登录与后端联调(36)
    phpexcel中文教程-设置表格字体颜色背景样式、数据格式、对齐方式、添加图片、批注、文字块、合并拆分单元格、单元格密码保护
    基于Bootstrap简单实用的tags标签插件
    html 中几次方,平方米,立方米,下标,上标,删除线等的表示方法
    如何做好App的引导页?(转)
    个推+DCLOUD,推送消息和透传消息
    AXURE在原型设计中的应用
    ***敏捷软件测试--初见
  • 原文地址:https://www.cnblogs.com/rik28/p/4080516.html
Copyright © 2011-2022 走看看