½ÃÀÛÆäÀÌÁö·Î Áñ°Üã±âÃß°¡
·Î±×ÀÎ
ȸ¿ø°¡ÀÔ l Ã⼮üũ l ¸¶ÀÌÆäÀÌÁö l CGIMALL
¸¶¿ì½º ¿À¹ö ÆÐ·²·¢½º ½½¶óÀÌ´õ(React Slider w/ Hover Effect) : happycgi
ÀÚ·á½Ç »çÀÌÆ®µî·Ï ·©Å·100 ÇÁ·Î±×·¥¸®ºä °ü¸®ÀÚÃßõÀÚ·á Ãʺ¸°¡À̵å
Ä¿¹Â´ÏƼ
Àüü ÆîÃ帱â
Äü¸Þ´º¸µÅ© jquery , CSS , PHP , Javascript , ¹«·áÆùÆ® , ASP
»ó¼¼°Ë»ö
Ȩ > CSS > À̹ÌÁö > ¸¶¿ì½º ¿À¹ö ÆÐ·²·¢½º ½½¶óÀÌ´õ(React Slider w/ Hover Effect) »ó¼¼Á¤º¸
»çÀÌÆ®µî·Ï
Ŭ¶ó¿ìµåű×
Javascript
HTML
CSS
php
API
ASP
mysql
jquery
slide
image
¸Þ´º
mobile
°Ô½ÃÆÇ
ÇöÀçÁ¢¼ÓÀÚ ¸í »õ·Î°íħ
¸¶¿ì½º ¿À¹ö ÆÐ·²·¢½º ½½¶óÀÌ´õ(React Slider w/ Hover Effect)
¼Ò½ºÅë°èÁ¤º¸ ¿À·ù½Å°í ¹× ¹®ÀÇ
ÇØÇÇÆÀ
³×ƼÁð
Æ®À§ÅÍ·Î º¸³»±â ÆäÀ̽ººÏÀ¸·Î º¸³»±â
¼Ò½ººÐ·ù À̹ÌÁö
´Ù¿î·Îµå Ƚ¼ö 101 ȸ
°£´Ü¼³¸í ¸®¾×Æ®·Î ±¸ÇöµÈ ½½¶óÀÌ´õ·Î, ¸¶¿ì½º Æ÷ÀÎÅÍ¿¡ µû¶ó À̹ÌÁö°¡ ¹Ì¹¦ÇÏ°Ô ¿òÁ÷ÀÌ¸ç ½Ã°¢Àû ¸ôÀÔ°¨À» ºÎ¿©ÇÏ´Â ÆÐ·²·¢½º È¿°ú°¡ Ư¡ÀÔ´Ï´Ù.
Æò°¡Çϱâ ÈǸ¢ÇÔ ¸Å¿ìÁÁÀ½ ÁÁÀ½ ±¦ÂúÀ½ º¸Åë º°·Î
ȨÆäÀÌÁö¹Ù·Î°¡±â ¼Ò½º´Ù¿î·Îµå µ¥¸ð ¹Ì¸®º¸±â ½ºÅ©·¦Çϱâ

ÀÌ ¿¹Á¦´Â React·Î Á¦ÀÛµÈ À̹ÌÁö ½½¶óÀÌ´õ·Î, ¸¶¿ì½º ¿òÁ÷ÀÓ¿¡ µû¶ó ÆÐ·²·¢½º È¿°ú°¡ Àû¿ëµÇ¾î »ýµ¿°¨ ÀÖ´Â È­¸é ÀüȯÀ» Á¦°øÇÕ´Ï´Ù.
½½¶óÀ̵å´Â ¹öư Ŭ¸¯À̳ª À̹ÌÁö ¼±ÅÃÀ¸·Î À̵¿ÇÒ ¼ö ÀÖÀ¸¸ç, Áß¾Ó¿¡ À§Ä¡ÇÑ ½½¶óÀ̵尡 °­Á¶µÇ¾î ÀÚ¿¬½º·¯¿î ½Ã°¢Àû ÁýÁßÀ» À¯µµÇÕ´Ï´Ù.
¸¶¿ì½º ¿À¹ö ½Ã À̹ÌÁö¿Í ÅØ½ºÆ®°¡ ¹Ì¹¦ÇÏ°Ô À̵¿Çϸç, »ç¿ëÀÚ ÀԷ¿¡ ¹ÝÀÀÇÏ´Â ÀÎÅÍ·¢Æ¼ºêÇÑ °æÇèÀ» Á¦°øÇÕ´Ï´Ù.
CSS Æ®·£Áö¼Ç°ú ¾Ö´Ï¸ÞÀ̼ÇÀ» Ȱ¿ëÇÏ¿© ºÎµå·´°í ¸Å²ô·¯¿î Àüȯ È¿°ú¸¦ ±¸ÇöÇß½À´Ï´Ù.

HTML ±¸Á¶

#app



CSS ¼Ò½º

@import url('https://fonts.googleapis.com/css?family=Playfair+Display:700|IBM+Plex+Sans:500&display=swap');


:root {

  --color-primary: #6B7A8F;

  --color-secondary: #101118;

  --color-accent: #1D1F2F;

  --color-focus: #6D64F7;

  --base-duration: 600ms;

  --base-ease: cubic-bezier(0.25, 0.46, 0.45, 0.84);

}


// =========================

// Global

// =========================


*, *:before, *:after {

  box-sizing: border-box;

}


html, body {

  height: 100%;

}


body {

  font-family: 'IBM Plex Sans', sans-serif;

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

}


#app {

  align-items: center;

  display: flex;

  height: 100%;

  justify-content: center;

  overflow-x: hidden;

  width: 100%;

}


h1, h2, h3 {

  font-family: 'Playfair Display', serif;

}


.visuallyhidden { 

  clip: rect(1px, 1px, 1px, 1px);  

  height: 1px; 

  overflow: hidden;

  position: absolute !important;

  white-space: nowrap;

  width: 1px;

}



// =========================

// Icons

// =========================


.icon {

  fill: var(--color-primary);

  width: 100%;

}



// =========================

// Buttons

// =========================


.btn {

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

  border: none;

  border-radius: 0.125rem;

  color: white;

  cursor: pointer;

  font-family: inherit;

  font-size: inherit;

  padding: 1rem 2.5rem 1.125rem;

  

  &:focus {

    outline-color: var(--color-focus);

    outline-offset: 2px;

    outline-style: solid;

    outline-width: 3px;

  }

  

  &:active {

    transform: translateY(1px);

  }

}



// =========================

// Slider controls

// =========================


.slider__controls {

  display: flex;

  justify-content: center;

  position: absolute;

  top: calc(100% + 1rem);

  width: 100%;

  

  .btn {

    --size: 3rem;

    

    align-items: center;

    background-color: transparent;

    border: 3px solid transparent;

    border-radius: 100%;

    display: flex;

    height: var(--size);

    padding: 0;

    width: var(--size);

    

    &:focus {

      border-color: var(--color-focus);

      outline: none;

    }

        

    &--previous > * {

      transform: rotate(180deg);

    }

  }

}



// =========================

// Slider

// =========================


.slider {

  --slide-size: 70vmin;

  --slide-margin: 4vmin;

  

  height: var(--slide-size);

  margin: 0 auto;

  position: relative;

  width: var(--slide-size);

}


.slider__wrapper {

  display: flex;

  margin: 0 calc(var(--slide-margin) * -1);

  position: absolute;

  transition: transform var(--base-duration) cubic-bezier(0.25, 1, 0.35, 1);

}



// =========================

// Slide

// =========================


.slide {

  align-items: center;

  color: white;

  display: flex;

  flex: 1;

  flex-direction: column;

  height: var(--slide-size);

  justify-content: center;

  margin: 0 var(--slide-margin);

  opacity: 0.25;

  position: relative;

  text-align: center;

  transition: 

    opacity calc(var(--base-duration) / 2) var(--base-ease),

    transform calc(var(--base-duration) / 2) var(--base-ease);

  width: var(--slide-size);

  z-index: 1;

  

  &--previous,

  &--next {    

    &:hover {

      opacity: 0.5;

    }

  }

  

  &--previous {

    cursor: w-resize;

    

    &:hover {

      transform: translateX(2%);

    }

  }

  

  &--next {

    cursor: e-resize;

    

    &:hover {

      transform: translateX(-2%);

    }

  }

}


.slide--current {

  --x: 0;

  --y: 0;

  --d: 50;


  opacity: 1;

  pointer-events: auto;

  user-select: auto;

  

  @media (hover: hover) {

    &:hover .slide__image-wrapper {

      transform: 

        scale(1.025)

        translate(

          calc(var(--x) / var(--d) * 1px),

          calc(var(--y) / var(--d) * 1px)

        );

    }    

  }

}


.slide__image-wrapper {

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

  border-radius: 1%;

  height: 100%;

  left: 0%;

  overflow: hidden;

  position: absolute;

  top: 0%;  

  transition: transform calc(var(--base-duration) / 4) var(--base-ease);

  width: 100%;

}


.slide__image {

  --d: 20;

  

  height: 110%;

  left: -5%;

  object-fit: cover;

  opacity: 0;

  pointer-events: none;

  position: absolute;

  top: -5%;

  transition:

    opacity var(--base-duration) var(--base-ease),

    transform var(--base-duration) var(--base-ease);

  user-select: none;

  width: 110%;

  

  @media (hover: hover) {

    .slide--current & {      

      transform: 

        translate(

          calc(var(--x) / var(--d) * 1px),

          calc(var(--y) / var(--d) * 1px)

        ); 

    }

  }

}


.slide__headline {

  font-size: 8vmin;

  font-weight: 600;

  position: relative;

}


.slide__content {

  --d: 60;

  

  opacity: 0;

  padding: 4vmin;

  position: relative;

  transition: transform var(--base-duration) var(--base-ease);

  visibility: hidden;

  

  .slide--current & {

    animation: fade-in calc(var(--base-duration) / 2) var(--base-ease) forwards;

    visibility: visible;

    

    @media (hover: hover) {

      transform: 

        translate(

          calc(var(--x) / var(--d) * -1px),

          calc(var(--y) / var(--d) * -1px)

        );

    }

  }

  

  > * + * {

    margin-top: 2rem;

  }

}



// =========================

// Animations

// =========================


@keyframes fade-in {

  from { opacity: 0 }

  to   { opacity: 1 }

}



JS ¼Ò½º

const slideData = [

  {

    index: 0,

    headline: 'New Fashion Apparel',

    button: 'Shop now',

    src: 'https://s3-us-west-2.amazonaws.com/s.cdpn.io/225363/fashion.jpg'

  },

  {

    index: 1,

    headline: 'In The Wilderness',

    button: 'Book travel',

    src: 'https://s3-us-west-2.amazonaws.com/s.cdpn.io/225363/forest.jpg'

  },

  {

    index: 2,

    headline: 'For Your Current Mood',

    button: 'Listen',

    src: 'https://s3-us-west-2.amazonaws.com/s.cdpn.io/225363/guitar.jpg'

  },

  {

    index: 3,

    headline: 'Focus On The Writing',

    button: 'Get Focused',

    src: 'https://s3-us-west-2.amazonaws.com/s.cdpn.io/225363/typewriter.jpg'

  }

]

...  ÀÌÇÏ»ý·« ...

÷ºÎÆÄÀÏ react-slider-w-hover-effect.zip¿¡¼­  script.js ÂüÁ¶ÇØÁÖ¼¼¿ä
 

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