Medium's Image Zoom (no dependencies, IE 10+)
JavaScript HTML Makefile CSS
Pull request Compare This branch is 47 commits ahead of fat:master.


npm (scoped)

A pure JavaScript image zooming plugin; as seen on

Has no jQuery or Bootstrap dependencies.

This is a port of the original version by @fat:


You can use zoom.js directly as a script, or install via npm.


  1. Link the zoom.js and zoom.css files to your site or application.

    <link href="css/zoom.css" rel="stylesheet">
    <script src="dist/zoom.js"></script>
  2. Add a data-action="zoom" attribute to the images you want to make zoomable. For example:

    <img src="img/blog_post_featured.png" data-action="zoom">

Via npm

  1. Install the package: npm i @nishanths/zoom.js
  2. Link the zoom.css file to your application.

    <link href="css/zoom.css" rel="stylesheet">
  3. Import the package and call zoom.setup(elem) for each image you want to make zoomable.

    import { zoom } from "@nishanths/zoom.js";
    var imgElem = new Image();
    imgElem.src = "tree.png";




It has the same behavior and all the features from the original implementation. But:

* In addition to the dist/ scripts, it's available as an npm module.
* Browser compatibility may be lower. Uses the transitionend event without
  vendor prefixes, so IE 10 or higher.


Original license

This is a fork of the original zoom.js implementation by @fat. Copyrights for the original project are held by @fat. All other copyright for changes in the fork are held by Nishanth Shanmugham.

Copyright (c) 2013 @fat The MIT License. Copyright © 2016 Nishanth Shanmugham.