½ÃÀÛÆäÀÌÁö·Î Áñ°Üã±âÃß°¡
·Î±×ÀÎ
ȸ¿ø°¡ÀÔ l Ã⼮üũ l ¸¶ÀÌÆäÀÌÁö l CGIMALL
Alpine.js ( Masonry Gallery + Lazy Loading ) : happycgi
ÀÚ·á½Ç »çÀÌÆ®µî·Ï ·©Å·100 ÇÁ·Î±×·¥¸®ºä °ü¸®ÀÚÃßõÀÚ·á Ãʺ¸°¡À̵å
Ä¿¹Â´ÏƼ
Àüü ÆîÃ帱â
Äü¸Þ´º¸µÅ© jquery , CSS , PHP , Javascript , ¹«·áÆùÆ® , ASP
»ó¼¼°Ë»ö
Ȩ > JAVASCRIPT > javascript ¼Ò½ºÃ¢°í > ÆÛÆ÷¸Õ½º > Alpine.js ( Masonry Gallery + Lazy Loading ) »ó¼¼Á¤º¸
»çÀÌÆ®µî·Ï
Ŭ¶ó¿ìµåű×
Javascript
PHP
html
CSS
ASP
API
MYSQL
jquery
image
slide
Mobile
¸Þ´º
°Ô½ÃÆÇ
ÇöÀçÁ¢¼ÓÀÚ ¸í »õ·Î°íħ
Alpine.js ( Masonry Gallery + Lazy Loading )
¼Ò½ºÅë°èÁ¤º¸ ¿À·ù½Å°í ¹× ¹®ÀÇ
ÇØÇÇÆÀ
³×ƼÁð
Æ®À§ÅÍ·Î º¸³»±â ÆäÀ̽ººÏÀ¸·Î º¸³»±â
¼Ò½ººÐ·ù ÆÛÆ÷¸Õ½º
´Ù¿î·Îµå Ƚ¼ö 2 ȸ
°£´Ü¼³¸í Alpine.js¸¦ »ç¿ëÇÑ °¶·¯¸® µðÀÚÀÎÀÔ´Ï´Ù.
Æò°¡Çϱâ ÈǸ¢ÇÔ ¸Å¿ìÁÁÀ½ ÁÁÀ½ ±¦ÂúÀ½ º¸Åë º°·Î
ȨÆäÀÌÁö¹Ù·Î°¡±â ¼Ò½º´Ù¿î·Îµå µ¥¸ð ¹Ì¸®º¸±â ½ºÅ©·¦Çϱâ
Alpine.js¸¦ »ç¿ëÇÏ¿© html ºí·ÏÀ» ¹Ýº¹ »ý¼ºÇÏ°Ô ¸¸µç µðÀÚÀÎ ÀÔ´Ï´Ù.
½ºÅ©·Ñ ½Ã ¼³Á¤ÇÑ °³¼ö ¸¸Å­ À̹ÌÁö°¡ ÀÚµ¿À¸·Î Ãâ·ÂµÇ°Ô µÇ¾îÀÖ½À´Ï´Ù.
ÀÚ¼¼ÇÑ ³»¿ëÀº µ¥¸ð¸¦ È®ÀÎÇØ Áֽñ⠹ٶø´Ï´Ù.







HTML
<script defer src="https://cdn.jsdelivr.net/npm/@alpinejs/intersect@3.x.x/dist/cdn.min.js"></script>
<script defer src='https://cdn.jsdelivr.net/npm/alpinejs@3.x.x/dist/cdn.min.js'></script>
 
<div class='wrapper'>
  <div x-data class='gallery'>
    <template x-for='i in 300' :key='i'>
      <li x-data='observeImages' x-intersect.margin.200px.once='loadImage'>
        <img x-ref='img'>
      </li>
    </template>
  </div>
</div>
 
CSS
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
 
.wrapper {
  background-color: black;
  padding: 0.5rem;
}
 
.gallery {
  column-count: 1;
  column-gap: 0.5rem;
  list-style-type: none;
 
  & li {
    break-inside: avoid;
    min-height: 30vmin;
    margin-bottom: 0.5rem;
    background-color: #222;
 
    & img {
      display: block;
      width: 100%;
      object-fit: cover;
      filter: grayscale(100%);
      transition: opacity 0.3s;
    }
  }
}
 
 
@media (width > 500px) {
  .gallery {
    columns: 2;
  }
}
 
@media (width > 900px) {
  .gallery {
    columns: 3;
  }
}
 
JS
function registerComponent() {
  Alpine.data('observeImages',function() {
    return {
      random(min,max) {
        return Math.floor(min + Math.random() * (max-min));
      },
      loadImage() {
        const id = this.random(100,1000);
        const width = this.random(300,600);
        const height = this.random(200,500);
        const img = this.$refs.img;
 
        img.width = width;
        img.height = height;
        img.src = `https://picsum.photos/seed/${id}/600/400`;
 
        img.style.opacity = 0;
        img.addEventListener('load',() => img.style.opacity = 1,false);
      },
    }
  });
}
 
document.addEventListener('alpine:init',registerComponent,false);




³×ƼÁð ÀÇ°ß   ÀÌ¿ëÇϽŠÀÚ·áÀÇ Èı⸦ ÀÚÀ¯·Ó°Ô ÀÛ¼ºÇϼ¼¿ä. (»ó¾÷ÀûÀÎ ±¤°í ¹× µµ¹è¼º ±Û µîÀº »çÀüÅ뺸¾øÀÌ »èÁ¦µÉ ¼ö ÀÖ½À´Ï´Ù.)
³»¿ë ¾ÆÀ̵ð Àǰ߳²±â±â
µî·ÏµÈ ÀǰßÀÌ ¾ø½À´Ï´Ù.
1
À̸§
³»¿ë
:³×¸Â¾Æ¿ä: :È­³ª´Â±º¿ä: :Àá¿Í: :¿ì¿ïÇØ: :À̰ǾƳÄ: :¿ÕÇÏÇÏ: ¿Õ¿ôÀ½~ ³î·¥~
Æò°¡Çϱâ ÈǸ¢ÇÔ ¸Å¿ìÁÁÀ½ ÁÁÀ½ ±¦ÂúÀ½ º¸Åë º°·Î
µµ¹è¹æÁöŰ
 76464649 º¸ÀÌ´Â µµ¹è¹æÁö۸¦ ÀÔ·ÂÇϼ¼¿ä.