½ÃÀÛÆäÀÌÁö·Î Áñ°Üã±âÃß°¡
·Î±×ÀÎ
ȸ¿ø°¡ÀÔ l Ã⼮üũ l ¸¶ÀÌÆäÀÌÁö l CGIMALL
½ºÅ©·Ñ »óÅ ±â¹Ý Sticky ³×ºñ°ÔÀÌ¼Ç UI : happycgi
ÀÚ·á½Ç »çÀÌÆ®µî·Ï ·©Å·100 ÇÁ·Î±×·¥¸®ºä °ü¸®ÀÚÃßõÀÚ·á Ãʺ¸°¡À̵å
Ä¿¹Â´ÏƼ
Àüü ÆîÃ帱â
Äü¸Þ´º¸µÅ© jquery , CSS , PHP , Javascript , ¹«·áÆùÆ® , ASP
»ó¼¼°Ë»ö
Ȩ > CSS > ±âº» ¼Ò½º > ½ºÅ©·Ñ »óÅ ±â¹Ý Sticky ³×ºñ°ÔÀÌ¼Ç UI »ó¼¼Á¤º¸
»çÀÌÆ®µî·Ï
Ŭ¶ó¿ìµåű×
javascript
HTML
PHP
CSS
Api
ASP
mysql
2022
jquery
Slide
¸ðµâ
¸ÞÀϸµ
Ä«¿îÅÍ
ÇöÀçÁ¢¼ÓÀÚ ¸í »õ·Î°íħ
½ºÅ©·Ñ »óÅ ±â¹Ý Sticky ³×ºñ°ÔÀÌ¼Ç UI
¼Ò½ºÅë°èÁ¤º¸ ¿À·ù½Å°í ¹× ¹®ÀÇ
ÇØÇÇÆÀ
³×ƼÁð
Æ®À§ÅÍ·Î º¸³»±â ÆäÀ̽ººÏÀ¸·Î º¸³»±â
¼Ò½ººÐ·ù ±âº» ¼Ò½º
´Ù¿î·Îµå Ƚ¼ö 12 ȸ
°£´Ü¼³¸í ½ºÅ©·Ñ À§Ä¡¿¡ µû¶ó ³×ºñ°ÔÀÌ¼Ç »óÅÂ¿Í ½ºÅ¸ÀÏÀÌ µ¿ÀûÀ¸·Î º¯È­ÇÏ´Â ÀÎÅÍ·¢¼Ç UI. @container scroll-state¿Í scroll-timelineÀ» Ȱ¿ëÇÑ ÃֽŠCSS ±¸Çö.
Æò°¡Çϱâ ÈǸ¢ÇÔ ¸Å¿ìÁÁÀ½ ÁÁÀ½ ±¦ÂúÀ½ º¸Åë º°·Î
ȨÆäÀÌÁö¹Ù·Î°¡±â ¼Ò½º´Ù¿î·Îµå µ¥¸ð ¹Ì¸®º¸±â ½ºÅ©·¦Çϱâ

¾Ö´Ï¸ÞÀÌ¼Ç ÅÇ Ç¥½ÃÁÙÀº ¾Ö´Ï¸ÞÀ̼ǰú ÀüȯÀ» »ç¿ëÇÏ¿© »ç¿ëÀÚ¿¡°Ô ´õ¿í Á÷°üÀûÀÎ ÀÎÅÍÆäÀ̽º¸¦ Á¦°øÇØ ÁÙ ¼ö ÀÖ½À´Ï´Ù.
»ç¶÷ÀÌ ÅÇÀ» Ŭ¸¯Çϸé ÇØ´ç Åǰú °ü·ÃµÈ ÄÜÅÙÃ÷°¡ ½¬¿î ¾Ö´Ï¸ÞÀ̼ÇÀ¸·Î Ç¥½ÃÇÏ°Ô µË´Ï´Ù.
¾Ö´Ï¸ÞÀÌ¼Ç ÅÇ Ç¥½ÃÁÙÀº À¥ÆäÀÌÁö Á»´õ ¿ªµ¿ÀûÀÌ°í ¸Å·ÂÀûÀ¸·Î ¸¸µé ¼ö ÀÖ½À´Ï´Ù.

¸ðµç Åǰú °ü·ÃµÈ ÄÜÅÙÃ÷¸¦ ½¬¿î ¾Ö´Ï¸ÞÀ̼ÇÀ¸·Î º¸¿©ÁÜÀ¸·Î½á ÇöÀç À¥ »çÀÌÆ® ¶Ç´Â ¾ÛÀÇ ¾î´À ºÎºÐ¿¡ ÀÖ´ÂÁö,
´Ù¸¥ ¼½¼ÇÀ¸·Î À̵¿ÇÏ´Â ¹æ¹ýÀ» ½±°Ô ÀÌÇØÇÒ ¼ö ÀÖ½À´Ï´Ù.

HTML ±¸Á¶

<header>

  <h1>Scroll down</h1>

  <p>This is just filler for this section, <a href="#services">scroll on</a>.</p>

</header>


<div class="stuck-top">

  <nav>

    <a href="#services">Services</a>

    <a href="#journal">Journal</a>

    <a href="#about">About</a>

    <a href="#contact">Contact</a>

  </nav>

</div>


<section id="services" style="view-timeline-name: --section-services">

  <header>

    <h1>Services</h1>

    <p>Filler for this section, <a href="#journal">scroll on</a>.</p>

  </header>

</section>


<section id="journal" style="view-timeline-name: --section-journal">

  <header>

    <h1>Journal</h1>

    <p>Filler for this section, <a href="#about">scroll on</a>.</p>

  </header>

</section>


<section id="about" style="view-timeline-name: --section-about">

  <header>

    <h1>About</h1>

    <p>Filler for this section, <a href="#contact">scroll on</a>.</p>

  </header>

</section>


<section id="contact" style="view-timeline-name: --section-contact">

  <header>

    <h1>Contact</h1>

    <p>Done, no more sections. <a href="#">Scroll to top</a></p>

  </header>

</section>



CSS ¼Ò½º

@import url("https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap");

@import "https://unpkg.com/open-props" layer(design.system);


@layer demo {

  .stuck-top {

    position: sticky;

    container-type: scroll-state;

    top: var(--space-s);

    z-index: 1;


    > nav {

      transition: 

        background-color 0.3s var(--ease-3),

        box-shadow 0.3s var(--ease-3), margin 0.3s var(--ease-spring-3),

        border-radius 0.3s var(--ease-3);


      @container scroll-state(stuck: top) {

        background-color: oklch(from var(--color-onPrimary) l c h / 0.4);

        backdrop-filter: blur(10px);

        box-shadow: var(--shadow-6);

        border-radius: 10px;

        margin-inline: 20px;

      }

    }

  }

}


@layer demo.scrollspy {

  body {

    timeline-scope: --section-services, --section-journal, --section-about, --section-contact;

  }

  

  @keyframes highlight {

    25%, 50% {

      border-block-end-color: oklch(from var(--color-primary) l c h / 0.4);

      color: oklch(from var(--color-primary) calc(l * 1.2) c h );

    }

  }

  

  nav {

    > a {

      animation: highlight linear both;

      animation-range: cover 20% exit-crossing 50%;

      

      border-block-end: 3px solid transparent;

    }

    > a:nth-child(1) { animation-timeline: --section-services }

    > a:nth-child(2) { animation-timeline: --section-journal }

    > a:nth-child(3) { animation-timeline: --section-about }

    > a:nth-child(4) { animation-timeline: --section-contact }

  }

}


@layer demo.support {

  :root {

    /* Override open props shadow strength */

    --shadow-strength: 0.5%;

    

    --color-primary: #ddd5c3;

    --color-onPrimary: #6f8d6a;

    --color-emphasis: #496c45;


    /* @link https://utopia.fyi/type/calculator?c=320,18,1.25,1440,28,1.333,5,2,&s=0.75|0.5|0.25,1.5|2|3|4|6,s-l&g=s,l,xl,12 */

    --step--2: clamp(0.72rem, 0.7046rem + 0.0769vw, 0.7738rem);

    --step--1: clamp(0.9rem, 0.8624rem + 0.1879vw, 1.0315rem);

    --step-0: clamp(1.125rem, 1.0536rem + 0.3571vw, 1.375rem);

    --step-1: clamp(1.4063rem, 1.2844rem + 0.6095vw, 1.8329rem);

    --step-2: clamp(1.7578rem, 1.562rem + 0.9792vw, 2.4432rem);

    --step-3: clamp(2.1973rem, 1.8945rem + 1.5136vw, 3.2568rem);

    --step-4: clamp(2.7466rem, 2.2909rem + 2.2782vw, 4.3413rem);

    --step-5: clamp(3.4332rem, 2.7607rem + 3.3625vw, 5.787rem);


    /* @link https://utopia.fyi/space/calculator?c=320,18,1.25,1440,22,1.333,5,2,&s=0.75|0.5|0.25,1.5|2|3|4|6,s-l&g=s,l,xl,12 */

    --space-3xs: clamp(0.3125rem, 0.2946rem + 0.0893vw, 0.375rem);

    --space-2xs: clamp(0.5625rem, 0.5268rem + 0.1786vw, 0.6875rem);

    --space-xs: clamp(0.875rem, 0.8214rem + 0.2679vw, 1.0625rem);

    --space-s: clamp(1.125rem, 1.0536rem + 0.3571vw, 1.375rem);

    --space-m: clamp(1.6875rem, 1.5804rem + 0.5357vw, 2.0625rem);

    --space-l: clamp(2.25rem, 2.1071rem + 0.7143vw, 2.75rem);

    --space-xl: clamp(3.375rem, 3.1607rem + 1.0714vw, 4.125rem);

    --space-2xl: clamp(4.5rem, 4.2143rem + 1.4286vw, 5.5rem);

    --space-3xl: clamp(6.75rem, 6.3214rem + 2.1429vw, 8.25rem);

  }


  * {

    box-sizing: border-box;

    margin: 0;

  }

  

  html {

    block-size: 100%;

    color: var(--color-primary);

    background: var(--color-emphasis);

    scroll-behavior: smooth;

  }

  

  body {

    min-block-size: 100%;

    font-family: "Inter", sans-serif;

  }

  

  section {

    border-block-end: 2px solid var(--color-onPrimary);

  }


  a {

    color: inherit;

    text-decoration: none;

    transition: all 200ms ease-in-out;

    

    &:hover {

      opacity: 0.8;

    }

  }

  

  header {

    display: grid;

    place-content: center;

    text-align: center;

    display: grid;

    gap: var(--space-3xs);

    block-size: 95svh;

    

    > h1 {

      font-size: var(--step-4);

      text-transform: uppercase;

      letter-spacing: var(--font-letterspacing-5);

    }

    

    > p {

      font-size: var(--step-2);

      

      > a {

        color: oklch(from var(--color-primary) calc(l * 1.2) c h );

        border-block-end: 3px solid oklch(from var(--color-primary) l c h / 0.4);

      }

    }

  }

  

  .stuck-top {

    z-index: 1;

  }


  nav {

    display: grid;

    grid-auto-flow: column;

    grid-auto-columns: 1fr;

    place-items: center;

    justify-content: space-between;

    gap: var(--space-l);

    padding: var(--space-l) var(--space-2xl);

    

    > a {

      font-size: var(--step-2);

      display: block;

      transition: all 0.2s ease-in-out;

      

      &:hover {

        opacity: 0.6;

      }

    }

  }


}

 

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