zoukankan      html  css  js  c++  java
  • jQuery实现仿京东商城图片放大镜

    效果图:

    不废话直接上代码:

      1 <!DOCTYPE html>
      2 <html>
      3 <head>
      4     <meta charset="utf-8">
      5     <title>test</title>
      6     <style type="text/css">
      7         * {
      8             padding: 0;
      9             margin: 0;
     10         }
     11         ul{
     12             position: relative;
     13             width: 500px;
     14             /*height: 500px;*/
     15             margin: 50px;
     16         }
     17         li{
     18             width: 500px;
     19             height: 500px;
     20             /*position: absolute;*/
     21         }
     22         .div {
     23             border: 1px solid;
     24             position: relative;
     25             /*margin: 50px;*/
     26             height: 500px;
     27             width: 500px;
     28         }
     29 
     30         .div img {
     31             width: 500px;
     32             height: 500px;
     33         }
     34 
     35         .span {
     36             width: 100px;
     37             height: 100px;
     38             position: absolute;
     39             background: red;
     40             display: none;
     41             cursor: all-scroll;
     42             opacity: 0.1;
     43 
     44         }
     45 
     46         .show {
     47             height: 550px;
     48             width: 550px;
     49             position: relative;
     50             left: 502px;
     51             top: -505px;
     52             overflow: hidden;
     53             /*display: none;*/
     54         }
     55 
     56         .show img {
     57             position: absolute;
     58             width: 1500px;
     59             height: 1500px;
     60         }
     61 
     62     </style>
     63 </head>
     64 <body>
     65 
     66 <ul>
     67 
     68     <li >
     69         <div class="div">
     70             <img src="sjxq01_boom.jpg">
     71             <span class="span"></span>
     72             <div class="show">
     73                 <img class="show_img" src="sjxq01_boom.jpg">
     74             </div>
     75         </div>
     76     </li>
     77     <li >
     78         <div class="div" style="display: none">
     79             <img src="sjxq3_boom.jpg">
     80             <span class="span"></span>
     81             <div class="show">
     82                 <img class="show_img" src="sjxq3_boom.jpg">
     83             </div>
     84         </div>
     85 
     86     </li>
     87 </ul>
     88 
     89 <script type="text/javascript" src="jquery.min.js"></script><script src="demo.js"></script>
    90 </body> </html>

    js代码:

     1  $(document).ready(function () {
     2         (function () {
     3                      var mouseX,   //鼠标光标X坐标
     4              mouseY,
     5              divX,   //最外层DIV X坐标
     6              divY,
     7              spanX,   //放大镜 X坐标
     8              spanY, 
     9              divW,   // 最外层 DIV 宽度
    10              divH,  
    11              scrY,  //滚动条卷去的高度
    12              div = $(".div");
    13             div.on("mousemove", function (e) {
    14                 $(this).find(".span").show();
    15                 $(this).find(".show").show();
    16                 scrY=document.body.scrollTop||document.documentElement.scrollTop;
    17                 divW = div.width();
    18                 divH = div.height();
    19                 mouseX = e.originalEvent.x || e.originalEvent.layerX || 0;
    20                 mouseY = e.originalEvent.y || e.originalEvent.layerY || 0;
    21                 divY = $(this).offset().top;
    22                 divX = $(this).offset().left;
    23                 spanX = mouseX - divX - 50;
    24                 spanY = mouseY - divY - 50+scrY;
    25                 if ((spanX + 100) > divW) {
    26                     spanX = 400;
    27                 }
    28                 if ((spanY + 100) > divW) {
    29                     spanY = 400;
    30                 }
    31                 if (spanX < 0) {
    32                     spanX = 0;
    33                 }
    34                 if (spanY < 0) {
    35                     spanY = 0;
    36                 }

                      if(mouseX > (divW+divX)){
                         $(this).find(".span").hide();
                         $(this).find(".show").hide();
                      }

    37                 $(this).find(".span").css('left', spanX).css('top', spanY);
    38                 $(this).find(".show_img").css("left", -3 * spanX).css('top', -3 * spanY);
    39             });
    40             div.on("mouseout", function () {
    41                 $(this).find(".span").hide();
    42                 $(this).find(".show").hide();
    43             });
    44             div.on("mouseover", function () {
    45             });
    46 
    47         })();
    48 
    49     });
  • 相关阅读:
    次小生成树
    乘法逆元(递推)
    乘法逆元(快速幂)
    带偏移量的并查集
    Tarjan 强连通分量
    Luogu_P2461 [SDOI2008]递归数列 【题解】 矩阵乘法
    Luogu_P2243 电路维修【题解】 双端队列bfs
    Luogu_ P2962 [USACO09NOV] 灯 【题解】 双向搜索
    luogu_P2044【题解】 随机数生成器 矩阵乘法
    luogu_P2054 bzoj 1965 洗牌 【题解】 快速幂 快速乘
  • 原文地址:https://www.cnblogs.com/wennice/p/6605428.html
Copyright © 2011-2022 走看看