美文网首页
jQ 放大镜效果

jQ 放大镜效果

作者: lessonSam | 来源:发表于2020-05-03 09:59 被阅读0次

    该项目可以直接使用 在宽高读取都是没有写死的 可以直接用,也可以写成插件也是没问题的

    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>Document</title>
        <script src="https://cdn.bootcdn.net/ajax/libs/jquery/1.11.0/jquery.js"></script>
    
        <style>
          .small {
            position: absolute;
            top: 100px;
            left: 100px;
            width: 250px;
            height: 250px;
            border: 1px solid red;
            margin-bottom: 30px;
          }
          .small img {
            width: 100%;
            height: 100%;
          }
          .big {
            position: relative;
            display: none;
            top: 100px;
            left: 500px;
            /* 这个宽高是蒙版的4倍· */
            width: 400px;
            height: 400px;
            border: 1px solid red;
            overflow: hidden;
          }
          .big img {
            width: 1000px;
            height: 1000px;
            position: absolute;
          }
          .mark {
            display: none;
            position: absolute;
            top: 0;
            left: 0;
            width: 100px;
            height: 100px;
            background-color: #fff;
            opacity: 0.5;
            filter: alpha(opacity=50);
          }
        </style>
      </head>
      <body>
        <!-- 布局 -->
        <!-- 小图 -->
        <div class="small">
          <img src="../五星评价/img/a.jpg" alt="" srcset="" />
    
          <div class="mark"></div>
        </div>
        <!-- 大图 -->
        <div class="big">
          <img src="../五星评价/img/a.jpg" alt="" srcset="" />
        </div>
        <div></div>
    
        <script>
          $(function () {
            $('.small')
              .mouseenter(function () {
                $('.mark,.big').show();
              })
              .mouseleave(function () {
                $('.mark, .big').hide();
              })
              .mousemove(function (e) {
                var l = e.pageX - $(this).offset().left - $('.mark').width() / 2;
                var t = e.pageY - $(this).offset().top - $('.mark').height() / 2;
                // 边界判断
                // 水平方向 left 方向是不能小于0 right 方向是不能超过small -mark 的宽度
                l =
                  l <= 0
                    ? 0
                    : l >= $('.small').width() - $('.mark').width()
                    ? $('.small').width() - $('.mark').width()
                    : l;
                // 垂直方向 同垂直方向道理相同
                t =
                  t <= 0
                    ? 0
                    : t >= $('.small').height() - $('.mark').height()
                    ? $('.small').height() - $('.mark').height()
                    : t;
                // 改变遮罩层的位置
                $('.mark').css({
                  left: l,
                  top: t,
                });
                // 同时改变放大图片的位置
                $('.big img').css({
                  left: -4 * l,
                  top: -4 * t,
                });
              });
          });
        </script>
      </body>
    </html>
    
    

    相关文章

      网友评论

          本文标题:jQ 放大镜效果

          本文链接:https://www.haomeiwen.com/subject/xbtdghtx.html