โ ์ด๋๋ก๋ผ๋ฉด ์ฌ๋๋ค์ ๊ทผ์ก์ ํดํํด๋ฒ๋ ค์ ๋ฒํผ์ ๋๋ฅผ ์๊ฐ๋ฝ๋ง ๋จ์ ๊ฒ์ด๋ค. โ
- Frank Lloyd Wright

fslightbox.js
ํฐ์คํ ๋ฆฌ์ ๊ธฐ๋ณธ์ผ๋ก ๋ด์ฅ๋์ด์๋ ๋ผ์ดํธ๋ฐ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ lightbox2.js ๋ก์ ๋ฌด๊ฒ๊ณ ๋๋ฆฌ๋ค.
๋ฐ๋ฉด, fslightbox.js ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ด๋ฏธ์ง, ๋น๋์ค ๋๋ ์ฌ์ฉ์ ์ง์ ์์ค๋ฅผ ํตํด ์ํ๋ ๋ชจ๋ ๊ฒ์ ๊น๋ํ ์ค๋ฒ๋ ์ด ์์์ ํ์ํ๋ ์ข ์์ฑ์ด ์๋ ๋ฐ๋๋ผ ์๋ฐ์คํฌ๋ฆฝํธ ํ๋ฌ๊ทธ์ธ์ด๋ค. ์ฌ์ฉํ๊ธฐ ์ฌ์ฐ๋ฉด์๋ ๊ฐ๋ฒผ์ฐ๋ฉฐ ์ด๋ฏธ์ง, HTML ๋์์, YouTube ๋์์ ๋ฑ ๋ค์ํ ์ ํ์ ์์ค๋ฅผ ๊น๋ํ ์ค๋ฒ๋ผ์ดํ ๋ฐ์ค์ ํ์ํ ์ ์๋ค.
Chrome, Firefox, Edge, Opera, IE ๋ธ๋ผ์ฐ์ ๋ชจ๋ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ฉฐ, ๋ํ ๋ฆฌ์กํธ์ ๋ทฐ ํ๋ ์์ํฌ์ ๋ํด์๋ ์ง์ํ๋ค. ๋ค๋ง ๋ช๊ฐ์ง ์ ๋๋ฉ์ด์ ์ด๋ ์์ ๊ธฐ๋ฅ์ Pro ๋ผ์ด์ผ์ค๋ฅผ ์จ์ผํด์ ์ ๋ฃํ๊ฐ ํ์ํ๋ค. ๊ทธ๋๋ ๊ธฐ๋ณธ์ ์ธ ๋ผ์ดํธ๋ฐ์ค ๊ธฐ๋ฅ์ ์ค์ํ ํธ์ด๋ค.
Fullscreen Lightbox | Vanilla JavaScript Lightbox Plug-in
A front-end plug-in for displaying images, videos, or, through custom sources, anything you want in a clean overlying box.
fslightbox.com

๋ง์ฐ์ค๋ฅผ ์์ชฝ์ผ๋ก ์ฌ๋ผ์ด๋ฉํ๋ฉด ๋ค์ ์ฌ์ง์ผ๋ก ์ค๋ฒ๋ ์ด๋๋ค.
fslightbox ์ฌ์ฉ๋ฒ
์ด ํฌ์คํ ์์ ์ผ๋ฐ์ ์ธ ๋ฐ๋๋ผ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ์ค์น ๋ฐ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์งํํด ๋ณด๊ฒ ๋ค.
๊ธฐ๋ณธ ์ ์ ์ธํ
์ฐ์ ์์ ์ ์ฌ์ดํธ์ ์ด๋ฏธ์ง ์๋ฆฌ๋จผํธ์ ๋ํด์ ๋ผ์ดํธ๋ฐ์ค๋ฅผ ์ ์ฉํ๊ธฐ ์ํด์ ์ฌ์ ๋จ๊ณ๊ฐ ํ์ํ๋ฐ, ์๋์ ๊ฐ์ด <img> ํ๊ทธ๋ฅผ <a> ํ๊ทธ๋ก ๊ฐ์ธ๊ณ ์์ฑ์ผ๋ก ์ด๋ฏธ์ง ๊ฒฝ๋ก๋ฅผ ๊ฐ์ง href ์ data-fslightbox ๋ฅผ ๊ธฐ์ฌํด์ค๋ค. ๊ทธ๋ฆฌ๊ณ fslightbox.js ์คํฌ๋ฆฝํธ ์์ค๋ฅผ ๋ก๋ ํ๋ฉด ๋๋ค. ๊ทธ๋ฌ๋ฉด data-fslightbox ์์ฑ์ด ์๋ ๋ชจ๋ <a> ์์๊ฐ ๋ผ์ดํธ๋ฐ์ค๋ฅผ ์ด์ ์๊ฒ ๋๋ค.
<a data-fslightbox href="https://i.imgur.com/fsyrScY.jpg">
<img src="https://i.imgur.com/fsyrScY.jpg" alt="Image">
</a>
<a data-fslightbox href="https://i.imgur.com/fsyrScY.jpg">
<img src="https://i.imgur.com/fsyrScY.jpg" alt="Image">
</a>
<!-- aํ๊ทธ์์ img ํ๊ทธ๊ฐ ์์ด๋ ๋๋ค -->
<a data-fslightbox href="https://i.imgur.com/fsyrScY.jpg">0</a>
<!-- ๋ผ์ดํธ๋ฐ์ค ์คํฌ๋ฆฝํธ ๋ก๋ -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/fslightbox/3.4.1/index.min.js"></script>
์๋ฐ์คํฌ๋ฆฝํธ๋ก ๋์ ์ธํ
๋ค๋ง ํฐ์คํ ๋ฆฌ์ ๊ฐ์ ์จ๋ ํํฐ ์๋น์ค๋ฅผ ์ด์ฉํ ๊ฒฝ์ฐ html์ ์์๋ฅผ ๋ฏธ๋ฆฌ ๋ฐ๊พธ์ง ๋ชปํ ๋๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ํ์ฒ๋ฆฌ ์์ ์ ํด์ฃผ์ด์ผ ํ๋๋ฐ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
// <img> ํ๊ทธ์ <a> ํ๊ทธ๋ฅผ ๋ํํจ
function wrap(img) {
const el = document.createElement('a');
el.setAttribute('data-fslightbox', 'gallery');
el.href = img.src;
// ์ฒซ๋ฒ์งธ ์ธ์๋ก ์ ๋ฌ๋ฐ์ ๋
ธ๋๋ฅผ, ๋๋ฒ์งธ ์ธ์๋ก ์ ๋ฌํ ๋
ธ๋์ ๋ฐ๋ก ์์ ์ฝ์
img.parentElement.insertBefore(el, img);
el.appendChild(img);
}
document.querySelectorAll('img').forEach((el, idx) => {
wrap(el);
});
refreshFsLightbox(); // fslight ์ฌ์ค์
๋น๋์ค ๋ผ์ดํธ๋ฐ์ค
์ด๋ฏธ์ง ๋ฟ๋ง ์๋๋ผ ๋น๋์ค๋ ์ ํ๋ธ ์์๋ ๋ผ์ด๋ธ๋ฐ์ฑ์ด ๊ฐ๋ฅํ๋ค.
<a data-fslightbox="gallery" href="https://i.imgur.com/fsyrScY.jpg">
Image
</a>
<a data-fslightbox="gallery" href="https://www.youtube.com/watch?v=3nQNiWdeH2Q">
YouTube video
</a>
<a data-fslightbox="gallery" href="https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4">
HTML video
</a>
๋ง์ผ Vimeo ๋น๋์ค, Google ์ง๋ ๋ฑ๊ณผ ๊ฐ์ ์ฌ์ฉ์ ์ง์ ์ฝํ ์ธ ๋ฅผ ํ์ํ๋ ค๋ฉด "href" ์์ฑ์ "#" ์ ๋์ฌ๊ฐ ์๋ ์ฌ์ฉ์ ์ง์ ์์ค์ ID๋ฅผ ์ ๋ฌํด์ผ ํ๋ค.
<a data-fslightbox="lightbox" href="#vimeo">
Image
</a>
<iframe
src="https://player.vimeo.com/video/22439234"
id="vimeo"
width="1920px"
height="1080px"
frameBorder="0"
allow="autoplay; fullscreen"
allowFullScreen
></iframe>
์ด ๊ธ์ด ์ข์ผ์ จ๋ค๋ฉด ๊ตฌ๋ & ์ข์์
์ฌ๋ฌ๋ถ์ ๊ตฌ๋
๊ณผ ์ข์์๋
์ ์์๊ฒ ํฐ ํ์ด ๋ฉ๋๋ค.