MediaWiki:Common.js: Difference between revisions
Appearance
Cdjensen94 (talk | contribs) No edit summary |
Cdjensen94 (talk | contribs) No edit summary |
||
Line 5: | Line 5: | ||
if (!slideshow) return; | if (!slideshow) return; | ||
// | // Reset positioning to let the parent naturally size | ||
slideshow.style.position = 'relative'; | slideshow.style.position = 'relative'; | ||
slideshow.style.left = ''; | slideshow.style.left = ''; | ||
slideshow.style.top = ''; | slideshow.style.top = ''; | ||
slideshow.style.transform = ''; | slideshow.style.transform = ''; | ||
// | // Force `mw-jsslideshow` to wrap tightly around the slideshow | ||
mwSlideshow.style.width = slideshow.scrollWidth + 'px'; | mwSlideshow.style.width = slideshow.scrollWidth + 'px'; | ||
mwSlideshow.style.height = slideshow.scrollHeight + 'px'; | mwSlideshow.style.height = slideshow.scrollHeight + 'px'; | ||
mwSlideshow.style.margin = '0 auto'; // Center | mwSlideshow.style.margin = '0 auto'; // Center mw-jsslideshow itself | ||
// Center each individual image | // Center each individual image within its slide div | ||
slideshow.querySelectorAll('div').forEach(slide => { | slideshow.querySelectorAll('div').forEach(slide => { | ||
const img = slide.querySelector('img'); | const img = slide.querySelector('img'); | ||
if (img) { | if (img) { | ||
// | // Reset slide container spacing | ||
slide.style.padding = '0'; | |||
slide.style.margin = '0'; | |||
slide.style.border = 'none'; | |||
slide.style.width = slideshow.scrollWidth + 'px'; | |||
slide.style.display = 'flex'; | slide.style.display = 'flex'; | ||
slide.style.justifyContent = 'center'; | slide.style.justifyContent = 'center'; | ||
slide.style.alignItems = 'center'; | slide.style.alignItems = 'center'; | ||
slide.style. | slide.style.boxSizing = 'border-box'; | ||
// Image centering & sizing | |||
img.style.display = 'block'; | |||
img.style.maxWidth = '100%'; | img.style.maxWidth = '100%'; | ||
img.style.height = 'auto'; | img.style.height = 'auto'; | ||
img.style.objectFit = 'contain'; | img.style.objectFit = 'contain'; | ||
img.style.margin = '0'; // Kill any ghost margin | |||
} | } | ||
}); | }); | ||
Line 37: | Line 44: | ||
resizeAndCenterSlideshow(mwSlideshow); | resizeAndCenterSlideshow(mwSlideshow); | ||
window.addEventListener('resize', () => { | window.addEventListener('resize', () => { | ||
resizeAndCenterSlideshow(mwSlideshow); | resizeAndCenterSlideshow(mwSlideshow); | ||
}); | }); | ||
const slideshow = mwSlideshow.querySelector('.slideshow'); | const slideshow = mwSlideshow.querySelector('.slideshow'); | ||
if (slideshow) { | if (slideshow) { | ||
Line 59: | Line 64: | ||
} | } | ||
if (document.readyState === 'complete' || document.readyState === 'interactive') { | if (document.readyState === 'complete' || document.readyState === 'interactive') { | ||
initSlideshowResizer(); | initSlideshowResizer(); |