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

´Ù¾çÇÑ »çÀÌÆ®¿¡¼­ ÈÄ¿ø»ç ·Î°í, Çù·Â»ç ·Î°í µîµî ´Ù¾çÇÑ ·Î°íµéÀ» ³ª¿­ÇÒ ¶§ ¾²±â ÁÁÀº ·Î°í ¾Ö´Ï¸ÞÀÌ¼Ç È¿°úÀÔ´Ï´Ù. 
»ó´Ü ¹öÆ°À» Ŭ¸¯ÇÏ¸é ·Î°íÀÇ À̵¿ÀÌ »óÇÏ·Î º¯°æµÇ¾î ÇÊ¿ä¿¡ ¸Â°Ô ¾µ ¼ö ÀÖ½À´Ï´Ù.
½É½ÉÇÑ »çÀÌÆ®¿¡ µ¿ÀûÀÎ È¿°ú¸¦ ÁÜÀ¸·Î½á ¿ªµ¿ÀûÀ¸·Î ¸¸µé¾î ÁÖ´Â È¿°ú°¡ ÀÖ½À´Ï´Ù.
ÇØ´ç ¾Ö´Ï¸ÞÀ̼ÇÀº ¹ÝÀÀÇüÀÔ´Ï´Ù.

HTML ±¸Á¶

<button class="toggle" id="direction-toggle">

  <span>Toggle scroll axis</span>

  <svg aria-hidden="true" viewBox="0 0 512 512" width="100" title="arrows-alt-h">

    <path d="M377.941 169.941V216H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.568 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296h243.882v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.568 0-33.941l-86.059-86.059c-15.119-15.12-40.971-4.412-40.971 16.97z" />

  </svg>

</button>


<article class="wrapper">

  <div class="marquee">

    <div class="marquee__group">

      <svg>

        <use xlink:href="#mcdonalds" />

      </svg>

      <svg>

        <use xlink:href="#jordan" />

      </svg>

      <svg>

        <use xlink:href="#aws" />

      </svg>

      <svg>

        <use xlink:href="#spotify" />

      </svg>

      <svg>

        <use xlink:href="#burger-king" />

      </svg>

      <svg>

        <use xlink:href="#honda" />

      </svg>

      <svg>

        <use xlink:href="#notion" />

      </svg>

      <svg>

        <use xlink:href="#hulu" />

      </svg>

    </div>

 

  

 ÀÚ¼¼ÇÑ ¼Ò½º´Â »çÀÌÆ®¿¡¼­ È®ÀÎ ¹Ù¶ø´Ï´Ù

  

  </defs>

</svg>


CSS ¼Ò½º

:root {

  --color-text: navy;

  --color-bg: papayawhip;

  --color-bg-accent: #ecdcc0;

  --size: clamp(10rem, 1rem + 40vmin, 30rem);

  --gap: calc(var(--size) / 14);

  --duration: 60s;

  --scroll-start: 0;

  --scroll-end: calc(-100% - var(--gap));

}


@media (prefers-color-scheme: dark) {

  :root {

    --color-text: papayawhip;

    --color-bg: navy;

    --color-bg-accent: #2626a0;

  }

}


* {

  box-sizing: border-box;

}


body {

  display: grid;

  align-content: center;

  overflow: hidden;

  gap: var(--gap);

  width: 100%;

  min-height: 100vh;

  font-family: system-ui, sans-serif;

  font-size: 1rem;

  line-height: 1.5;

  color: var(--color-text);

  background-color: var(--color-bg);

}


.marquee {

  display: flex;

  overflow: hidden;

  user-select: none;

  gap: var(--gap);

  mask-image: linear-gradient(

    var(--mask-direction, to right),

    hsl(0 0% 0% / 0),

    hsl(0 0% 0% / 1) 20%,

    hsl(0 0% 0% / 1) 80%,

    hsl(0 0% 0% / 0)

  );

}


.marquee__group {

  flex-shrink: 0;

  display: flex;

  align-items: center;

  justify-content: space-around;

  gap: var(--gap);

  min-width: 100%;

  animation: scroll-x var(--duration) linear infinite;

}


@media (prefers-reduced-motion: reduce) {

  .marquee__group {

    animation-play-state: paused;

  }

}


.marquee--vertical {

  --mask-direction: to bottom;

}


.marquee--vertical,

.marquee--vertical .marquee__group {

  flex-direction: column;

}


.marquee--vertical .marquee__group {

  animation-name: scroll-y;

}


.marquee--reverse .marquee__group {

  animation-direction: reverse;

  animation-delay: -3s;

}


@keyframes scroll-x {

  from {

    transform: translateX(var(--scroll-start));

  }

  to {

    transform: translateX(var(--scroll-end));

  }

}


@keyframes scroll-y {

  from {

    transform: translateY(var(--scroll-start));

  }

  to {

    transform: translateY(var(--scroll-end));

  }

}


/* Element styles */

.marquee svg {

  display: grid;

  place-items: center;

  width: var(--size);

  fill: var(--color-text);

  background: var(--color-bg-accent);

  aspect-ratio: 16/9;

  padding: calc(var(--size) / 10);

  border-radius: 0.5rem;

}


.marquee--vertical svg {

  aspect-ratio: 1;

  width: calc(var(--size) / 1.5);

  padding: calc(var(--size) / 6);

}


/* Parent wrapper */

.wrapper {

  display: flex;

  flex-direction: column;

  gap: var(--gap);

  margin: auto;

  max-width: 100vw;

}


.wrapper--vertical {

  flex-direction: row;

  height: 100vh;

}


/* Toggle direction button */

.toggle {

  --size: 3rem;

  position: relative;

  position: fixed;

  top: 1rem;

  left: 1rem;

  width: var(--size);

  height: var(--size);

  font: inherit;

  text-align: center;

  cursor: pointer;

  outline: none;

  border: none;

  border-radius: 50%;

  color: inherit;

  background-color: var(--color-bg-accent);

  z-index: 1;

}


.toggle:focus-visible {

  box-shadow: 0 0 0 2px var(--color-text);

}


.toggle span {

  position: absolute;

  display: inline-block;

  top: 50%;

  left: calc(100% + 0.4em);

  width: fit-content;

  white-space: nowrap;

  transform: translateY(-50%);

  animation: fade 400ms 4s ease-out forwards;

  user-select: none;

}


.toggle svg {

  --size: 1.5rem;

  position: absolute;

  top: 50%;

  left: 50%;

  width: var(--size);

  height: var(--size);

  fill: currentcolor;

  transform: translate(-50%, -50%);

  transition: transform 300ms cubic-bezier(0.25, 1, 0.5, 1);

}


.toggle--vertical svg {

  transform: translate(-50%, -50%) rotate(-90deg);

}


@keyframes fade {

  to {

    opacity: 0;

    visibility: hidden;

  }

}

 


JS ¼Ò½º

/*

 JS to toggle scroll axis styles

*/

const control = document.getElementById("direction-toggle");

const marquees = document.querySelectorAll(".marquee");

const wrapper = document.querySelector(".wrapper");


control.addEventListener("click", () => {

  control.classList.toggle("toggle--vertical");

  wrapper.classList.toggle("wrapper--vertical");

  [...marquees].forEach((marquee) =>

    marquee.classList.toggle("marquee--vertical")

  );

});

 

 
À§ ¼Ò½º´Â ·Î°íÀÇ ÇüÅ°¡ svg·Î µÇ¾î ÀÖÀ¸¸ç À̹ÌÁö·Îµµ Àû¿ëÀÌ °¡´ÉÇÕ´Ï´Ù.
³×ƼÁð ÀÇ°ß   ÀÌ¿ëÇϽŠÀÚ·áÀÇ Èı⸦ ÀÚÀ¯·Ó°Ô ÀÛ¼ºÇϼ¼¿ä. (»ó¾÷ÀûÀÎ ±¤°í ¹× µµ¹è¼º ±Û µîÀº »çÀüÅ뺸¾øÀÌ »èÁ¦µÉ ¼ö ÀÖ½À´Ï´Ù.)
³»¿ë ¾ÆÀ̵ð ÀÇ°ß³²±â±â
ÁÁÀºµ¥ À̹ÌÁö·Î ³ÖÀ¸·Á¸é ¾î¶»°Ô ÇØ¾ß ÇÏ´ÂÁö¿ä?
2024-06-23 01:42:41
ÄÉÀÌ¿í
Âù¼º 2
¹Ý´ë 2
RE happycgi
symbol ¿¡ À̹ÌÁö ű׸¦ ³ÖÀ¸½Ã¸é µË´Ï´Ù.
symbol ÅÂ±× ¾È¿¡ path űװ¡ Àִµ¥ ÀÌ path ű״ë½Å image ű׸¦ ³Ö°í href="À̹ÌÁö°æ·Î" width="°¡·Î" height="¼¼·Î" ÀÌ·¸°Ô ³ÖÀ¸½Ã¸é À§ ±â´ÉÀ» »ç¿ëÇϸ鼭 À̹ÌÁö¸¦ ³ÖÀ¸½Ç ¼ö ÀÖ½À´Ï´Ù.(2024-11-04 10:22:16)
°ü¸®ÀÚ
1
À̸§
³»¿ë
:³×¸Â¾Æ¿ä: :È­³ª´Â±º¿ä: :Àá¿Í: :¿ì¿ïÇØ: :À̰ǾƳÄ: :¿ÕÇÏÇÏ: ¿Õ¿ôÀ½~ ³î·¥~
Æò°¡Çϱâ ÈǸ¢ÇÔ ¸Å¿ìÁÁÀ½ ÁÁÀ½ ±¦ÂúÀ½ º¸Åë º°·Î
µµ¹è¹æÁöÅ°
 13401591 º¸ÀÌ´Â µµ¹è¹æÁöÅ°¸¦ ÀÔ·ÂÇϼ¼¿ä.