How to zoom in and zoom out images using JavaScript?

The zoom-in and zoom-out functionality is essential for image interaction. By zooming in, users can examine image details closely, while zooming out provides a broader view. This feature is particularly useful for reading small text, viewing detailed graphics, or navigating large images.

In this tutorial, we will learn to implement zoom functionality for images using JavaScript by manipulating CSS properties.

Using Height and Width Properties

The most straightforward approach is to modify the image's height and width properties. By increasing these values, we zoom in; by decreasing them, we zoom out.

Syntax

// Zoom In
image.style.width = (width + 50) + "px";
image.style.height = (height + 50) + "px";

// Zoom Out
image.style.width = (width - 50) + "px";
image.style.height = (height - 50) + "px";

Here, width and height represent the current dimensions of the image, which we can retrieve using JavaScript properties.

Example 1: Basic Zoom with Buttons

This example demonstrates zoom functionality using dedicated buttons. The ZoomIn() function increases the image size by 50px, while ZoomOut() decreases it by 50px.

<html>
<body>
   <h3>Using height and width properties to zoom images</h3>
   <img src="/images/trending_categories.svg" height="300px" width="300px" alt="sample image" id="image">
   <br><br>
   <button onclick="ZoomIn()">Zoom IN</button>
   <button onclick="ZoomOut()">Zoom Out</button>
   
   <script>
      let image = document.getElementById('image');
      
      function ZoomIn() {
         let width = image.clientWidth;
         let height = image.clientHeight;
         image.style.width = (width + 50) + "px";
         image.style.height = (height + 50) + "px";
      }
      
      function ZoomOut() {
         let width = image.clientWidth;
         let height = image.clientHeight;
         image.style.width = (width - 50) + "px";
         image.style.height = (height - 50) + "px";
      }
   </script>
</body>
</html>

Example 2: Custom Zoom Levels

This example allows users to set custom dimensions by inputting specific width and height values through prompts.

<html>
<body>
   <h3>Custom zoom levels with user input</h3>
   <img src="/images/trending_categories.svg" height="300px" width="300px" alt="sample image" id="image">
   <br><br>
   <button onclick="CustomZoom()">Set Custom Size</button>
   
   <script>
      let image = document.getElementById('image');
      
      function CustomZoom() {
         let width = prompt("Enter the new width (in pixels):", 400);
         let height = prompt("Enter the new height (in pixels):", 400);
         
         if (width && height) {
            image.style.width = width + "px";
            image.style.height = height + "px";
         }
      }
   </script>
</body>
</html>

Example 3: Keyboard-Controlled Zoom

This example implements keyboard shortcuts for zoom control. Press 'p' to zoom in and 'q' to zoom out, providing a more interactive user experience.

<html>
<body>
   <h3>Keyboard-controlled zoom</h3>
   <h4>Press 'p' to zoom in, 'q' to zoom out</h4>
   <img src="/images/trending_categories.svg" height="300px" width="300px" alt="sample image" id="image">
   
   <script>
      let image = document.getElementById('image');
      
      // Add keypress event listener
      window.addEventListener('keypress', (event) => {
         let width = image.clientWidth;
         let height = image.clientHeight;
         
         // Zoom in when 'p' is pressed
         if (event.key === 'p') {
            image.style.width = (width + 50) + "px";
            image.style.height = (height + 50) + "px";
         }
         
         // Zoom out when 'q' is pressed
         if (event.key === 'q') {
            image.style.width = (width - 50) + "px";
            image.style.height = (height - 50) + "px";
         }
      });
   </script>
</body>
</html>

Key Points

  • Use clientWidth and clientHeight to get current image dimensions
  • Modify style.width and style.height properties to change image size
  • Add bounds checking to prevent images from becoming too small or large
  • Consider maintaining aspect ratio for better visual results

Conclusion

Image zooming in JavaScript is achieved by dynamically adjusting the height and width CSS properties. Whether using buttons, custom inputs, or keyboard shortcuts, the core principle remains the same: modify the image dimensions to create zoom effects.

Updated on: 2026-03-15T23:19:00+05:30

10K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements