放大图像的特定区域

时间:2016-08-27 02:44:23

标签: html css

有没有办法引导缩放过渡放大图像顶部或底部或任何其他特定区域?我目前正在这样做:



.grow { 
     transition: all 1s ease-in-out; 
}
.grow:hover { 
     transform: scale(8); 
}

<img src="http://placehold.it/350x150" class="grow"/>
&#13;
&#13;
&#13;

我将如何扩展?

1 个答案:

答案 0 :(得分:-1)

好的,首先,我已经从这个website获取了代码。

快进到本教程的结尾,您将获得代码。

代码

$(document).ready(function() {

  var native_width = 0;
  var native_height = 0;

  $(".magnify").mousemove(function(e) {
    if (!native_width && !native_height) {
      var image_object = new Image();
      image_object.src = $(".small").attr("src");

      native_width = image_object.width;
      native_height = image_object.height;
    } else {
      var magnify_offset = $(this).offset();
      var mx = e.pageX - magnify_offset.left;
      var my = e.pageY - magnify_offset.top;

      if (mx < $(this).width() && my < $(this).height() && mx > 0 && my > 0) {
        $(".large").fadeIn(100);
      } else {
        $(".large").fadeOut(100);
      }
      if ($(".large").is(":visible")) {
        var rx = Math.round(mx / $(".small").width() * native_width - $(".large").width() / 2) * -1;
        var ry = Math.round(my / $(".small").height() * native_height - $(".large").height() / 2) * -1;
        var bgp = rx + "px " + ry + "px";

        var px = mx - $(".large").width() / 2;
        var py = my - $(".large").height() / 2;
        $(".large").css({
          left: px,
          top: py,
          backgroundPosition: bgp
        });
      }
    }
  })
})
* {
  margin: 0;
  padding: 0;
}
.magnify {
  width: 200px;
  margin: 50px auto;
  position: relative;
}
.large {
  width: 175px;
  height: 175px;
  position: absolute;
  border-radius: 100%;
  box-shadow: 0 0 0 7px rgba(255, 255, 255, 0.85), 0 0 7px 7px rgba(0, 0, 0, 0.25), inset 0 0 40px 2px rgba(0, 0, 0, 0.25);
  background: url('http://thecodeplayer.com/uploads/media/iphone.jpg') no-repeat;
  display: none;
}
.small {
  display: block;
}
* {
  margin: 0;
  padding: 0;
}
.magnify {
  width: 200px;
  margin: 50px auto;
  position: relative;
}
.large {
  width: 175px;
  height: 175px;
  position: absolute;
  border-radius: 100%;
  box-shadow: 0 0 0 7px rgba(255, 255, 255, 0.85), 0 0 7px 7px rgba(0, 0, 0, 0.25), inset 0 0 40px 2px rgba(0, 0, 0, 0.25);
  background: url('http://thecodeplayer.com/uploads/media/iphone.jpg') no-repeat;
  display: none;
}
.small {
  display: block;
}
<div class="magnify">

  <div class="large"></div>
  <img class="small" src="http://thecodeplayer.com/uploads/media/iphone.jpg" width="200" />

</div>

<script src="http://thecodeplayer.com/uploads/js/prefixfree.js" type="text/javascript"></script>
<script src="http://thecodeplayer.com/uploads/js/jquery-1.7.1.min.js" type="text/javascript"></script>