Check out this nice image-zooming library by Desmond Ding. It's fairly little, has no dependencies, and has all the modern stuff to make it easy to integrate into modern sites (you know, available on npm, and modulized). I tossed a demo up on CodePen for playing convenience:

See the Pen Zooming by Chris Coyier (@chriscoyier) on CodePen.

When I said "fairly little" there, the minified version is still 7K. Check out Dave Rupert's take where it's all done with some transitions and viewport units. That's just a few bytes of code!

See the Pen Experiment: Using Picture Element and VW+VH units as a Lightbox by Dave Rupert (@davatron5000) on CodePen.

Ahhhhh the power of changing classes.