2016-08-27 128 views
0

有沒有辦法引導縮放轉換以放大圖像的頂部或底部或任何其他特定區域?我目前做這個:放大圖像的特定區域

.grow { 
 
    transition: all 1s ease-in-out; 
 
} 
 
.grow:hover { 
 
    transform: scale(8); 
 
}
<img src="http://placehold.it/350x150" class="grow"/>

我怎麼會就此展開?

+0

檢查這個問題。這可能會幫助你http://stackoverflow.com/questions/15757036/creating-a-zoom-effect-on-an-image-on-hover-using-css –

回答

0

好吧,首先,我已經從這個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>

+0

這似乎是你正在放大的中心圖片。我相信我的代碼也是如此。你將如何修改它以放大圖像的頂部? – user1842633

+0

檢查我的代碼(以及不是我的代碼)。現在您可以放大圖像的任何部分。 –

+0

您應該知道如何修改代碼以獲得所需的結果。 –