½ÃÀÛÆäÀÌÁö·Î Áñ°Üã±âÃß°¡
·Î±×ÀÎ
ȸ¿ø°¡ÀÔ l Ã⼮üũ l ¸¶ÀÌÆäÀÌÁö l CGIMALL
happycgi
ÀÚ·á½Ç »çÀÌÆ®µî·Ï ·©Å·100 ÇÁ·Î±×·¥¸®ºä °ü¸®ÀÚÃßõÀÚ·á Ãʺ¸°¡À̵å
Ä¿¹Â´ÏƼ
Àüü ÆîÃ帱â
Äü¸Þ´º¸µÅ© jquery , CSS , PHP , Javascript , ¹«·áÆùÆ® , ASP
»ó¼¼°Ë»ö
Ȩ > CSS > ±âŸȿ°ú > Scroll with light (CSS only) »ó¼¼Á¤º¸
»çÀÌÆ®µî·Ï
Ŭ¶ó¿ìµåű×
Javascript
PHP
ASP
CSS
HTML
MYSQL
jquery
image
Mobile
API
slide
°Ô½ÃÆÇ
¸Þ´º
ÇöÀçÁ¢¼ÓÀÚ ¸í »õ·Î°íħ
Scroll with light (CSS only)
¼Ò½ºÅë°èÁ¤º¸ ¿À·ù½Å°í ¹× ¹®ÀÇ
ÇØÇÇÆÀ
³×ƼÁð
Æ®À§ÅÍ·Î º¸³»±â ÆäÀ̽ººÏÀ¸·Î º¸³»±â
¼Ò½ººÐ·ù ±âŸȿ°ú
´Ù¿î·Îµå Ƚ¼ö 7 ȸ
°£´Ü¼³¸í CSS¸¸ »ç¿ëÇÏ¿© ½ºÅ©·Ñ ½Ã ±ÛÀÚ°¡ º¸À̴ºû È¿°ú
Æò°¡Çϱâ ÈǸ¢ÇÔ ¸Å¿ìÁÁÀ½ ÁÁÀ½ ±¦ÂúÀ½ º¸Åë º°·Î
ȨÆäÀÌÁö¹Ù·Î°¡±â ¼Ò½º´Ù¿î·Îµå µ¥¸ð ¹Ì¸®º¸±â ½ºÅ©·¦Çϱâ
 

½ºÅ©·ÑÀ» ÅëÇÏ¿© ±ÛÀÚ°¡ º¸ÀÌ´Â È¿°úÀÔ´Ï´Ù.
ÄÚµå ¹× µ¥¸ð´Â µ¥¸ð¸µÅ©¸¦ ÅëÇؼ­ È®ÀÎÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù.

HTML
<main>
  <div class="scrollbar"></div>
  <div class="container">
    <p>
      In the enchanted world of frontend development, pixels and code guide your design journey. Entranced by the dance of colors, shapes unfold on the digital canvas. Every line of code is a spell, weaving functionality and aesthetics into an immersive digital tale.</p>
    <p>
      In the enchanted world of frontend development, pixels and code guide your design journey. Entranced by the dance of colors, shapes unfold on the digital canvas. Every line of code is a spell, weaving functionality and aesthetics into an immersive digital tale.</p>
    <p>
      In the enchanted world of frontend development, pixels and code guide your design journey. Entranced by the dance of colors, shapes unfold on the digital canvas. Every line of code is a spell, weaving functionality and aesthetics into an immersive digital tale.</p>
    <p>
      In the enchanted world of frontend development, pixels and code guide your design journey. Entranced by the dance of colors, shapes unfold on the digital canvas. Every line of code is a spell, weaving functionality and aesthetics into an immersive digital tale.</p>
  </div>
</main>

CSS
@property --scroll-y-position {
  syntax: "<percentage>";
  initial-value: -10%;
  inherits: false;
}
@property --reflection-y-position {
  syntax: "<percentage>";
  initial-value: -50%;
  inherits: false;
}
@property --scrollbar-color {
  syntax: "<color>";
  inherits: false;
  initial-value: transparent;
}
@property --opacity-1 {
  syntax: "<number>";
  inherits: false;
  initial-value: 0.1;
}
@property --opacity-2 {
  syntax: "<number>";
  inherits: false;
  initial-value: 0.1;
}
@property --opacity-3 {
  syntax: "<number>";
  inherits: false;
  initial-value: 0.1;
}
@property --opacity-4 {
  syntax: "<number>";
  inherits: false;
  initial-value: 0.1;
}
 
@property --text-offset-1 {
  syntax: "<number>";
  inherits: false;
  initial-value: 10;
}
@property --text-offset-2 {
  syntax: "<number>";
  inherits: false;
  initial-value: 10;
}
@property --text-offset-3 {
  syntax: "<number>";
  inherits: false;
  initial-value: 10;
}
@property --text-offset-4 {
  syntax: "<number>";
  inherits: false;
  initial-value: 10;
}
html::-webkit-scrollbar {
  display: none;
}
body {
  margin: 0;
  background: black;
  height: 900px;
  font-family: sans-serif;
}
.scrollbar {
  width: 4px;
  height: 100%;
  background-color: var(--scrollbar-color);
  background-image: radial-gradient(
    circle at 0% var(--scroll-y-position),
    rgb(112, 153, 255) 0%,
    rgba(56, 106, 249, 0.79135) 10px,
    rgba(10, 76, 242, 0.53) 20px,
    rgba(255, 255, 255, 0) 40px,
    rgba(49, 49, 49, 0) 100%
  );
  animation: on-scrolling both linear;
  animation-timeline: scroll();
  animation-range: 10vh;
}
 
.container {
  width: 350px;
  height: 100%;
  background: linear-gradient(
    132deg,
    rgba(255, 255, 255, 0.09) 0%,
    rgba(238, 238, 238, 0.03) 20%,
    rgba(202, 202, 202, 0.04) 70%,
    rgba(171, 171, 171, 0.02) 100%
  );
  border: solid rgba(255, 255, 255, 0.06) 1px;
  margin-left: 15px;
  position: relative;
}
.container::before,
.container::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 100%;
  background: linear-gradient(
    180deg,
    rgba(10, 76, 242, 0) 0%,
    rgba(10, 76, 242, 0.75203) 38.288288288288285%,
    rgb(77, 127, 255) 50.9132179054054%,
    rgba(10, 76, 242, 0.75248) 63.06306306306306%,
    rgba(10, 76, 242, 0) 100%
  );
  background-repeat: no-repeat;
  background-position-y: var(--reflection-y-position);
  animation: on-scrolling both linear;
  animation-timeline: scroll();
  animation-range: 10vh;
}
.container::before {
  background-size: 1px 150px;
  filter: blur(1px);
}
.container::after {
  background-size: 10px 150px;
  filter: blur(10px);
}
 
main {
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: 40vh;
  padding-bottom: 40vh;
}
 
p {
  background-image: linear-gradient(
    270deg,
    rgba(255, 255, 255, 0.4) 0%,
    rgba(255, 255, 255, 0.9) 90%,
    rgb(191, 209, 255) 100%
  );
  background-clip: text;
  -webkit-background-clip: text;
  color: transparent;
  padding: 20px;
  line-height: 1.5em;
  --opacity-1: 0.1;
  --opacity-2: 0.1;
  --opacity-3: 0.1;
  --opacity-4: 0.1;
  --text-offset-1: 10;
  --text-offset-2: 10;
  --text-offset-3: 10;
  --text-offset-4: 10;
  animation: on-scrolling both linear;
  animation-timeline: scroll();
  animation-range: 10vh;
}
 
p:nth-child(1) {
  opacity: var(--opacity-1);
  transform: translateY(calc(var(--text-offset-1) * 1px));
}
p:nth-child(2) {
  opacity: var(--opacity-2);
  transform: translateY(calc(var(--text-offset-2) * 1px));
}
p:nth-child(3) {
  opacity: var(--opacity-3);
  transform: translateY(calc(var(--text-offset-3) * 1px));
}
p:nth-child(4) {
  opacity: var(--opacity-4);
  transform: translateY(calc(var(--text-offset-4) * 1px));
}
 
@keyframes on-scrolling {
  0% {
    --scroll-y-position: -10%;
    --reflection-y-position: -22%;
  }
  1% {
    --scrollbar-color: rgba(255, 255, 255, 0.1);
  }
  25% {
    --opacity-1: 1;
    --opacity-2: 0.1;
    --opacity-3: 0.1;
    --opacity-4: 0.1;
 
    --text-offset-1: 0;
    --text-offset-2: 10;
    --text-offset-3: 10;
    --text-offset-4: 10;
  }
  50% {
    --scroll-y-position: 50%;
    --reflection-y-position: 50%;
    --opacity-1: 0.1;
    --opacity-2: 1;
    --opacity-3: 0.1;
    --opacity-4: 0.1;
 
    --text-offset-1: 10;
    --text-offset-2: 0;
    --text-offset-3: 10;
    --text-offset-4: 10;
  }
  60% {
    --opacity-1: 0.1;
    --opacity-2: 0.1;
    --opacity-3: 1;
    --opacity-4: 0.1;
 
    --text-offset-1: 10;
    --text-offset-2: 10;
    --text-offset-3: 0;
    --text-offset-4: 10;
  }
  90% {
    --opacity-1: 0.1;
    --opacity-2: 0.1;
    --opacity-3: 0.1;
    --opacity-4: 1;
 
    --text-offset-1: 10;
    --text-offset-2: 10;
    --text-offset-3: 10;
    --text-offset-4: 0;
  }
  100% {
    --text-offset-1: 10;
    --text-offset-2: 10;
    --text-offset-3: 10;
    --text-offset-4: 10;
    --opacity-1: 0.1;
    --opacity-2: 0.1;
    --opacity-3: 0.1;
    --opacity-4: 0.1;
    --scroll-y-position: 105%;
    --reflection-y-position: 115%;
    --scrollbar-color: rgba(255, 255, 255, 0.1);
  }
}
 

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