How to Create a Custom Image Magnifier using jQuery ?
Last Updated :
24 Jul, 2024
Glimpse of Image magnifier:
An image magnifier is the zooming capability of your cursor point. Where you placed your cursor in the define div the image will be popped out in zoom mode. Like in the shopping sites, when you want to purchase any kind of cloth and want to check the material or print on that product in detail, this feature is useful. To create an image magnifier we will use the zoom() function. There is a similar article
how to zoom-in and zoom-out image using JavaScript ? which will zoom in the whole picture. We are going to build an image magnifier using jQuery. Below are some
prerequisites
we expect you to have some basic knowledge before start developing this:
Approach:
Get the page coordinates and the mouse position using jQuery offset() to get the relative position of cursor with respect to element. Set the outside container display attribute to block/inline-block so that image never overflows whenever zoomed. Set the top/left position relative to the container whenever zoom is triggered. We will need to calibrate the image zoom which takes time with respect to the container in different use-cases. Hence, for the same, we are going to use a simple jQuery core plugin named jQuery zoom which saves us a lot of time doing the same.
Creating Structure: In this section, we will create a basic structure. First of all, we will make the page layout
HTML code to make the structure:
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<!-- Required CDN's -->
<link rel="stylesheet"
href=
"https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css">
<script src=
"https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js">
</script>
<script src=
"https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js">
</script>
<script src=
"https://cdnjs.cloudflare.com/ajax/libs/jquery-zoom/1.7.21/jquery.zoom.js">
</script>
</head>
<body>
<center>
<h1>GeeksforGeeks</h1>
</center>
<div class="container-fluid">
<b>Move your Cursor Over the Image</b>
<div class="parent">
<img src=
"https://media.geeksforgeeks.org/wp-content/uploads/20200112021554/maxresdefault7.jpg">
</div>
<span class="contain">
<!-- Into another container -->
</span>
</div>
</body>
</html>
Designing Structure:
In the previous section, we have created the structure of the basic layout where we are going to use the magnifier.
CSS code of structure: In this section, we will design the layout add some necessary CSS configuration required to do the same. Style properties applied in the container to ensures that image never overflows outside the container never overflows outside the specified boundaries. Please refer to the examples below for more details.
HTML
<style>
body {
margin: 20px;
}
h1 {
color: green;
}
.container {
display: block;
padding: 0px;
}
.contain {
position: fixed;
right: 15%;
top: 15%;
width: 200px;
height: 220px;
}
img {
width: 300px;
height: 240px;
}
</style>
Adding jQuery script: Now we will initialize the jQuery script. The syntax is highlighted below:
$([Selector to Parent element of Image]).zoom({Attributes});
$([Image]).parent().zoom({attributes});
JavaScript
$(document).ready(function () {
$('.parent').css('width', $('img').width());
$('img').parent().zoom({
magnify: 4,
target: $('.contain').get(0)
});
});
Reason to use parent element of the image as the selector:
According to the Git-hub repository documentation, it is difficult to read some layout related to CSS styles from JavaScript/jQuery so we are using parent element here to do the same and this is also acting as the wrapper for the image at the same time.
Attributes of zoom() function:
Property | Default | Description |
---|
on | 'mouseover' | Event to be used for triggering the zoom. Options: mouseover, grab, click, toggle |
duration | 120 | Speed for fading effects. |
target | false | Selector/DOM element to be used as parent container for the zoomed image. |
touch | true | Enables interaction using Touch. |
magnify | 1 | Entered value is multiplied with image resolution for zooming. |
callback | false | Function called when the image has loaded. |
onZoomIn | false | Function called when the image has zoomed in. |
onZoomOut | false | Function called when the image has zoomed out. |
Combine the HTML, CSS, and jQuery code:
This is the final code after combining the above sections.
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<!-- Required CDN's -->
<link rel="stylesheet"
href=
"https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css">
<script src=
"https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js">
</script>
<script src=
"https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js">
</script>
<script src=
"https://cdnjs.cloudflare.com/ajax/libs/jquery-zoom/1.7.21/jquery.zoom.js">
</script>
<style>
body {
margin: 20px;
}
h1 {
color: green;
}
.container {
display: block;
padding: 0px;
}
.contain {
position: fixed;
right: 15%;
top: 15%;
width: 200px;
height: 220px;
}
img {
width: 300px;
height: 240px;
}
</style>
</head>
<body>
<center>
<h1>GeeksforGeeks</h1>
</center>
<div class="container-fluid">
<b>Move your Cursor Over the Image</b>
<div class="parent">
<img src=
"https://media.geeksforgeeks.org/wp-content/uploads/20200112021554/maxresdefault7.jpg">
</div>
<span class="contain">
<!-- Into another container -->
</span>
</div>
<script>
$(document).ready(function() {
$('.parent').css('width', $('img').width());
$('img')
.parent()
.zoom({
magnify: 4,
target: $('.contain').get(0)
});
});
</script>
</body>
</html>
Output:
Similar Reads
How to Create Image Magnifier using HTML CSS and JavaScript? An image magnifier is a feature that allows users to zoom into specific parts of an image, simulating a magnifying glass effect. Itâs created using HTML for structure, CSS for styling, and JavaScript to control the zoom functionality dynamically on hover or click.There are two methods to create an i
2 min read
How to create Bars icon using jQuery Mobile ? jQuery Mobile is a web based technology used to make responsive content that can be accessed on all smartphones, tablets and desktops. In this article, we will be making Bars icon using jQuery Mobile. Approach: First, add jQuery Mobile scripts needed for your project. <link rel=âstylesheetâ href=
1 min read
How to Design Image Slider using jQuery ? A slideshow container that cycles through a list of images on a web page. The following article will guide you to implement an image slider using HTML, CSS, and jQuery. The jQuery image slider contains images that run them using the previous and next icons. Previous and Next arrows are used to trave
5 min read
How to create a Search icon using jQuery Mobile ? jQuery Mobile is a web-based technology used to make responsive content that can be accessed on all smartphones, tablets, and desktops. In this article, we will be making a Search icon using jQuery Mobile. Approach: First, add jQuery Mobile scripts needed for your project. <link rel="stylesheet"
1 min read
How to Set background Image using jQuery css() Method ? This article will show you how to set the background image using jQuery. To set the background image, we are using the jQuery css() method. jQuery css() MethodThis method sets/returns one or more style properties for the specified elements. Syntax: Return a CSS property:$(selector).css("propertyname
2 min read
How to Create Responsive Modal Images using CSS & JavaScript? Modal images provide an interactive way to display larger versions of images without navigating away from the current page and it takes user attention and users can stay on our website some more time. PreviewApproachFirst, create a basic HTML layout for your image gallery and modal pop-ups. Each ima
4 min read
How to Create a Simple Image Editor with CSS Filters and jQuery ? CSS filter property is used to edit images or visual effects without the need for any specialized software. CSS filters work with a default value, so they don't offer users any control in changing their intensity.jQuery changes the value of intensity in CSS filters dynamically and thus gives the use
3 min read
Creating a Custom Image Slider using JavaScript What is an image slider?An image Slider or Image Carousel is an expedient way to show multiple images on a website. Alluring flashy images can draw many visitors to the site. The below image shows a sample image slider: In this post, we will create the above image slider using HTML, CSS and JavaScri
4 min read
How to create responsive image gallery using HTML, CSS, jQuery and Bootstrap? With the advent of new frameworks in web technologies, it has become quite easy to design and implement feature-rich and responsive web pages. Here, we are going to design a responsive image gallery using HTML, CSS, jQuery, and Bootstrap. Features or Functionalities to implement:Responsive imagesRes
3 min read
How to create followspot effect using HTML CSS and jQuery ? The follow-spot effect (spotlight effect) is an effect that can be easily implemented using jQuery. The effect is quite popular for the opening or front banner design for any website. Approach: The approach is to use circle CSS on the mouse movement effect using the mousemove() function provided by
2 min read