Skip to content

spinningarrow/zoom-vanilla.js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

92 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

zoom-vanilla.js

A simple library for image zooming; as seen on Medium.

This is a fork of the jQuery plugin by fat. This version does not depend on jQuery or any third-party libraries and is of equivalent file size.

Live demo: https://spinningarrow.github.io/zoom-vanilla.js

It zooms in really smoothly, and zooms out when you click again, scroll away, or press the esc key.

If you hold the or Ctrl key when clicking the image, it will open the image in a new tab instead of zooming it.

Usage

  1. Download dist/zoom-vanilla.min.js and css/zoom.css from GitHub, or install via npm by running npm i zoom-vanilla.js.

  2. Add the zoom-vanilla.min.js and zoom.css files to your HTML page:

<!-- before </body> -->">
<link href="css/zoom.css" rel="stylesheet"> <!-- inside <head> -->
<script src="dist/zoom-vanilla.min.js"></script> <!-- before </body> -->
  1. Add a data-action="zoom" attribute to the images you want to make zoomable:
<img src="img/blog_post_featured.png" data-action="zoom">

Browser support

zoom-vanilla.js should (in theory) work in all modern browsers. If not, create an issue! Thanks!

Known issues

  • The image is appended to the body; use an appropriate CSS selector for extra styling
  • Zooming may not be quite right if the aspect ratio of the image is changed

Build

  • git clone the repo
  • npm i to install dev dependencies
  • npm start to start a simple HTTP server (makes it easy to view the demo page)
  • npm run build to build the minified JS
  • npm run watch to rebuild when any files change (recommended for development)

About

Medium's image zoom in vanilla JS (no jQuery).

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 52.9%
  • HTML 42.8%
  • CSS 3.3%
  • Nix 1.0%