Image Zoom Magnifying Glass Effect with CSS3 and jQuery
In Image Zoom , Magnifying Glass Effect is very useful in now a days. Most of eCommerce Website or any product selling website include this type of facility for their customer.
CSS :
HTML :
FULL CODE :
Output :
Click Here For Live Demo :
Live Demo
eCommerce Website owner always put this functionality to increase traffic of the customer on their website. Using this feature, user can each point of image with zoom.
When small size of image in the webpage and user can't see properly than if these feature will added on image hover then user can easily will see that image with zoom.
Here, i explain whole code with step by step . Let's follow the step and run the example.
JAVASCRIPT :
- This condition is used in .mousemove() function . In this condition when user hover on the image , script will execute.
- image_object variable will create a new image object with same image. For getting dimention from the image we must create object of the image.
1 2 3 4 5 6 7 | if(!sub_width && !sub_height) { var image_object = new Image(); image_object.src = $(".small").attr("src"); sub_width = image_object.width; sub_height = image_object.height; } |
- In this below condition , This is .zoom-area position of the div. mx and my variable will be take position of the div from left and top side.
- If Pointer will be move outside the container then magnify will be hide otherwise magnify will be display.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | else { var magnify_position = $(this).offset(); var mx = e.pageX - magnify_position.left; var my = e.pageY - magnify_position.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()*sub_width - $(".large").width()/2)*-1; var ry =Math.round(my/$(".small").height()*sub_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}); } } |
CSS :
- Now add css code.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | <style> * { margin: 0; padding: 0; } .zoom-area { width: 500px; margin: 50px auto; position: relative; cursor: none } /* create magnify glass */ .large { width: 175px; height: 175px; position: absolute; border-radius: 100%; /* box shadow for glass effect */ 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); /*hide the glass by default*/ display: none; } .small { display: block; } </style> |
HTML :
1 2 3 4 5 6 7 8 9 | <div class="magnify"> <!-- container of the magnify glass with original/large version --> <div class="large"></div> <!-- This is the small image --> <img class="small" src="https://i.ytimg.com/vi/6lt2JfJdGSY/maxresdefault.jpg" width="500" height="500" /> </div> |
FULL CODE :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 | <html> <head> <style> * { margin: 0; padding: 0; } .zoom-area { width: 500px; margin: 50px auto; position: relative; cursor: none } /* create magnify glass */ .large { width: 175px; height: 175px; position: absolute; border-radius: 100%; /* box shadow for glass effect */ 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); /*hide the glass by default*/ display: none; } .small { display: block; } </style> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"> </script> <script> $(document).ready(function() { var sub_width = 0; var sub_height = 0; $(".large").css("background","url('" + $(".small").attr("src") + "') no-repeat"); $(".zoom-area").mousemove(function(e){ if(!sub_width && !sub_height) { var image_object = new Image(); image_object.src = $(".small").attr("src"); sub_width = image_object.width; sub_height = image_object.height; } else { var magnify_position = $(this).offset(); var mx = e.pageX - magnify_position.left; var my = e.pageY - magnify_position.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()*sub_width - $(".large").width()/2)*-1; var ry = Math.round(my/$(".small").height()*sub_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}); } } }) }) </script> </head> <div class="magnify"> <!-- container of the magnify glass with original/large version --> <div class="large"></div> <!-- This is the small image --> <img class="small" src="https://i.ytimg.com/vi/6lt2JfJdGSY/maxresdefault.jpg" width="500" height="500" /> </div> </html> |
Output :
Click Here For Live Demo :
Live Demo
How to add zoom image feature on hover, JQuery, JQuery Tutorial, Magnify image hover zoom, Magnify Image Zoom, Magnify zoom effect, Product Image hover Zoom
0 comments:
Post a Comment