UNPKG

@draftbox-co/gatsby-wordpress-inline-images

Version:

A Gatsby plugin to turn remote inline images to local static images

33 lines (29 loc) 1.16 kB
const { imageSelector, imageBackgroundSelector, imageWrapperSelector } = require(`./constants`); exports.onRouteUpdate = () => { const imageWrappers = document.querySelectorAll(imageWrapperSelector); // https://css-tricks.com/snippets/javascript/loop-queryselectorall-matches/ // for cross-browser looping through NodeList without polyfills for (let i = 0; i < imageWrappers.length; i++) { const imageWrapper = imageWrappers[i]; const backgroundElement = imageWrapper.querySelector(imageBackgroundSelector); const imageElement = imageWrapper.querySelector(imageSelector); const onImageLoad = () => { backgroundElement.style.transition = `opacity 0.5s 0.5s`; backgroundElement.style.opacity = 0; imageElement.style.transition = `opacity 0.5s`; imageElement.style.opacity = 1; imageElement.removeEventListener(`load`, onImageLoad); }; if (imageElement && backgroundElement) { if (imageElement.complete) { backgroundElement.style.opacity = 0; } else { imageElement.style.opacity = 0; imageElement.addEventListener(`load`, onImageLoad); } } } };