Simple Image Inner Zoom On Hover Using jQuery
| File Size: | 42.1 KB |
|---|---|
| Views Total: | 8139 |
| Last Update: | |
| Publish Date: | |
| Official Website: | Go to website |
| License: | MIT |
A simplest jQuery solution to zoom in /magnify / enlarge images on mouseover & mousemove.
How to use it:
1. Add the CSS class 'zoom' to your image.
<img class="zoom" src="1.jpg" alt="img">
2. Wrap the image into a container with CSS class 'zoomIn'.
<div class="zoomIn"> <img class="zoom" src="1.jpg" alt="img"> </div>
3. The required CSS for the 'zoomIn' container.
.zoomIn {
overflow: hidden;
position: relative;
z-index: 100;
cursor: crosshair;
}
4. Include the needed jQuery library at the bottom of the webpage.
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
5. The JavaScript to enable the inner zoom effect.
$(document).ready(function () {
var $container = $('.zoomIn');
var $image = $container.find('.zoom');
var $imageW = $image.width();
var $imageH = $image.height();
var $containerW = $container.innerWidth($imageW);
var $containerH = $container.innerHeight($imageH);
var $imageClone = $image.clone();
var $imageLarge = $imageClone.width($imageW * 2);
var imageLargeW = $imageLarge.width();
var imageLargeH = $imageLarge.height();
$image.width($imageW).height($imageH);
$('.zoomIn').on({
mouseenter: function () {
$imageLarge.hide().prependTo($container).fadeIn(300);
},
mousemove: function (e) {
var mouseX = e.pageX - $(this).offset().left;
var mouseY = e.pageY - $(this).offset().top;
var amountMovedX = Math.round(mouseX / $imageW * 100) / 100 * (imageLargeW - $imageW);
var amountMovedY = Math.round(mouseY / $imageH * 100) / 100 * (imageLargeH - $imageH);
$imageLarge.css({
'top': amountMovedY + 'px',
'left': -amountMovedX + 'px',
'position': 'relative'
});
},
mouseleave: function () {
$imageLarge.remove();
}
});
});
This awesome jQuery plugin is developed by ritaD86. For more Advanced Usages, please check the demo page or visit the official website.










