🔎🖼 A JavaScript library for zooming images like Medium
open()
, close()
and toggle()
) return the zoom object to allow method calls to be chained.const zoom = mediumZoom()
zoom
.attach('#image-1', '#image-2')
.on('open', () => zoom.update({ background: 'yellow' }))
.open()
open()
, close()
and toggle()
return promises resolving with the zoom for acting accordingly when the animation is completed. To remain compatible with IE10, promises are converted to no-operation functions if unavailable.const zoom = mediumZoom('[data-zoom]')
zoom.open().then(() => zoom.update({ background: 'yellow' }))
Options
background
supports the background
CSS property (not only background-color
)Methods
attach(...selectors: string[]|Element[]|NodeList[]|Array[]) => Zoom
clone(options?: object) => Zoom
getOptions() => object
getImages() => Element[]
getZoomedImage() => Element
Events
update
method is calledAdd TypeScript definitions
Improve documentation
srcset
attribute (#51)- const mediumZoom = require('medium-zoom')
+ const mediumZoom = require('medium-zoom').default
No images selected by default. Prior to version 1, all scaled images (via HTML or CSS properties) were added to the zoom when calling mediumZoom()
. Now, calling mediumZoom()
without selector does not attach any images to the zoom. This change is necessary for having a more predictable behavior and a more composable API.
Options
metaClick
was removedMethods
show() => void
→ open({ target?: Element }) => Promise<Zoom>
hide() => void
→ close() => Promise<Zoom>
toggle() => void
→ toggle({ target?: Element }) => Promise<Zoom>
detach() => void
→ detach(...selectors: string[]|Element[]|NodeList[]|Array[]) => Zoom
update(options: object) => void
→ update(options: object) => Zoom
addEventListeners(type: string, listener: Function) => void
→ on(type: string, listener: Function, options?: object) => Zoom
removeEventListeners(type: string, listener: Function) => void
→ off(type: string, listener: Function, options?: object) => Zoom
Attributes
data-zoom-target
→ data-zoom-src
Events
@tuelsch, @garviand and @mimamuh.