[๐Ÿ’ป] ์‹ค์Šต - ์•ˆ๋‹ค๋ฅด

J-silverยท2022๋…„ 9์›” 20์ผ

web-project

๋ชฉ๋ก ๋ณด๊ธฐ
10/18

๐Ÿ“– Overview

์‚ฌ์ดํŠธ๋ช…: ์•ˆ๋‹ค๋ฅด
์ž‘์—… ๊ธฐ๊ฐ„: 3์ผ ์†Œ์š”
๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ: swiper, jQuery
์œ ํ˜•: PC,mobile ์ ์‘ํ˜•, ํด๋ก  ์ฝ”๋”ฉ
์ฐธ์—ฌ๋„: 100%

๐Ÿ‘€ Check-point

  • ๋™์ผํ•œ ๋ ˆ์ด์•„์›ƒ์„ ๊ณตํ†ต์œผ๋กœ ์ž‘์—… ํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€?
  • ์ ์‘ํ˜• ๋ชจ๋ฐ”์ผ์„ ์ดํ•ดํ–ˆ๋Š”๊ฐ€
  • ์Šค์™€์ดํผ css๋ฅผ ์›ํ•˜๋Š” ํ˜•ํƒœ๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋Š”๊ฐ€
  • ๋ฉ”๋‰ด ๋‹ซ๊ธฐ ๋ฒ„ํŠผ์„ ์ด์šฉํ•˜์—ฌ ์—ด๊ณ  ๋‹ซ๊ธฐ๊ฐ€ ๊ฐ€๋Šฅํ•œ๊ฐ€


๐Ÿ“Œ ์Šคํฌ๋กค ๊ด€๋ จ

โœ ์Šคํฌ๋กค์‹œ ์ƒ๋‹จ fixed - scrollTop()

$(window).scroll(function(){
    if ($(this).scrollTop()>0) {
    //ํ˜„์žฌ scrollTop๊ฐ’์ด 0๋ณด๋‹ค ํด๋•Œ
        $('.header, .gnb-area, .top-menu').addClass('active');
        $('.menu-wrap').fadeIn(0);
    } else {
        $('.header, .gnb-area, .top-menu').removeClass('active');
    }
  })

โ—ผ $(window).scrollTop()

window๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์Šคํฌ๋กค์„ ๋‚ด๋ ธ์„ ๋•Œ ์Šคํฌ๋กค์ด ์ด๋™ํ•œ ๋งŒํผ์˜ ์Šคํฌ๋กค ์–‘ ๊ฐ’์„ ๊ตฌํ•˜๋Š” ๊ฒƒ


โœ ์Šคํฌ๋กค์‹œ ์‚ฌ๋ผ์กŒ๋‹ค, ๋‚˜ํƒ€๋‚˜๊ธฐ

โ—ผ fadeIn/out

e.originalEvent.wheelDelta; //๋งˆ์šฐ์Šค ํœ ์˜ ๋ฐ์ดํ„ฐ ๊ฐ’์„ ๋ฐ›์•„์˜จ๋‹ค

$('html, body').on('mousewheel',function(e){
    var E = e.originalEvent.wheelDelta; //๋งˆ์šฐ์Šค ํœ ์˜ ๋ฐ์ดํ„ฐ ๊ฐ’์„ ๋ฐ›์•„์˜จ๋‹ค
    console.log(E);
    //๋ฐ‘์„ ๋‚ด๋ฆด๋•Œ๋Š” ์Œ์ˆ˜ ์˜ฌ๋ฆด๋•Œ๋Š” ์–‘์ˆ˜๊ฐ’์„ ๋ฐ›์•„์˜จ๋‹ค
    if (E > 0) { 
      $('.appear-tab').fadeOut();

    } else {
      $('.appear-tab').fadeIn();
    }
  });
  • ๋งŒ์•ฝ ๋งˆ์šฐ์Šค ํœ  ๊ฐ’์ด 0๋ณด๋‹ค ํด๋•Œ fade Out
    -> ๋งˆ์šฐ์Šค ํœ ์„ ๋‚ด๋ฆด๋•Œ ์‚ฌ๋ผ์ ธ๋ผ ex) 120 > 0 ์ฐธ ์‹คํ–‰
  • ๊ทธ๋ ‡์ง€ ์•Š์„๋•Œ fade In
    ->๋งˆ์šฐ์Šค ํœ ์„ ์˜ฌ๋ฆด๋•Œ ๋‚˜ํƒ€๋‚˜๋ผ ex) -120 > 0 ๊ฑฐ์ง“ ์‹คํ–‰

์ฒ˜์Œ ์‹œ์ž‘์‹œ์—” ๋ณด์ด์ง€ ์•Š์•„์•ผํ•˜๋Š”๋ฐ ์‹œ์ž‘๋ถ€ํ„ฐ ๋‚˜ํƒ€๋‚˜ ์žˆ์—ˆ๋‹ค.
๊ทธ ์ด์œ ๋Š”?

if (E < 0) { 
      $('.appear-tab').fadeOut();
} else {
      $('.appear-tab').fadeIn();
    }

๋งŒ์•ฝ ๋งˆ์šฐ์Šค ํœ  ๊ฐ’์ด ์–‘์ˆ˜์ผ๋•Œ

๋‚ด๋ฆด๋•Œ -120 ์˜ฌ๋ฆด๋•Œ 120
๋‚ด๋ฆด๋•Œ -120<0 ์ฐธ fadeOut
์˜ฌ๋ฆด๋•Œ 120<0 ๊ฑฐ์ง“ fadeIn ์ธ๊ฑด ๋งž์ง€๋งŒ
0<0์€ ๊ฑฐ์ง“์ž„์œผ๋กœ ์‹œ์ž‘ํ• ๋•Œ ๋‚˜ํƒ€๋‚˜์žˆ๋Š” ๊ฒƒ ์ด๋‹ค.

--โŒ์˜ค๋ฅ˜โŒ--
์ด๋ ‡๊ฒŒ ์ฝ”๋“œ ์ž‘์„ฑ์‹œ ๋ฉ”๋‰ด์˜์—ญ์—์„œ๋„ ํœ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋œ๋‹ค.



โœ(โ—”โ—กโ—”) ์˜ค๋‹ต

lastScroll = 0; //lastScroll์ด 0์ผ๋•Œ

  $(window).scroll(function(){

    curr = $(this).scrollTop(); //ํ˜„์žฌscrollTop๊ฐ’

    if (curr > lastScroll || curr == 0) { //ํ˜„์žฌ๊ฐ’์ด lastScroll๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ 0๊ณผ ๊ฐ™๋‹ค๋ฉด
      $('.appear-tab').fadeOut(); //์‚ฌ๋ผ์ ธ๋ผ(๋‚ด๋ฆฌ๋ฉด
    } else {
      $('.appear-tab').fadeIn(); //์•„๋‹ˆ๋ผ๋ฉด ๋‚˜ํƒ€๋‚˜๋ผ (์˜ฌ๋ฆฌ๋ฉด
    }

    lastScroll = curr; //lastScroll๊ฐ’๊ณผ ํ˜„์žฌ๊ฐ’์ด ๊ฐ™์•„์•ผ ์‹คํ–‰์ด ๋œ๋‹ค
  })

โœ lastScroll = curr;์„ ์“ฐ๋Š” ์ด์œ ๋Š”?
-> lastScroll์— ์•„๋ฌด ์กฐ๊ฑด์„ ๊ฑธ์–ด์ฃผ์ง€ ์•Š์•˜์Œ์œผ๋กœ lastScroll๋Š” 0์œผ๋กœ ๋ฐ”๋€Œ์ง€ ์•Š๋Š”๋‹ค. ๊ทธ๋ ‡๊ธฐ์— else ์กฐ๊ฑด์€ ์„ฑ๋ฆฝ๋˜์ง€ ์•Š์Œ

->๊ทธ๋ ‡๊ธฐ์— ์กฐ๊ฑด๋ฌธ์ด ๋จผ์ € ์‹คํ–‰๋œ ๋’ค lastScroll์— ํ˜„์žฌ๊ฐ’์„ ๋‹ด์•„์ฃผ๋ฉด ์กฐ๊ฑด์ด ์„ฑ๋ฆฝ๋จ


๐Ÿ“Œ swiper pagination

์ด๋ถ€๋ถ„์€ ์Šค์™€์ดํผ๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” swiper-pagination-bullet ํด๋ž˜์Šค๋ฅผ ์ฐพ์•„์„œ
width,height,border-radius๋ฅผ ์ฃผ๋ฉด ๋œ๋‹ค.

<div class="swiper main-slide">
  <ul class="swiper-wrapper slide-box">
    <div class="swiper-pagination swiper-bar"></div>
  </ul>
</div>
.sc-banner .main-slide .swiper-bar{
    bottom: 37px;
    left: 50%;
    transform: translateX(-50%);
}
.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet, .swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{
    width: 20px;
    height: 2px;
    margin: 0;
    border-radius: 0;
    background: #fff;
}

ํด๋ž˜์Šค๋ช…์ด ๊ธด ์ด์œ ๋Š” ๊ธฐ์กด์— ์žˆ๋Š” ์Šค์™€์ดํผcssํด๋ž˜์Šค๋ช… ๊ทธ๋Œ€๋กœ ๊ฐ€์ ธ์˜จ ๊ฑฐ๋‹ค.


โœ ๋‚ด๊ฐ€ ์ฐฉ๊ฐํ•œ๊ฒƒ

swiper-pagination-bullet๋ฅผ ๊ฐ์‹ธ๊ณ  ์žˆ๋Š” swiper-pagination์— ์‚ฌ์ด์ฆˆ์™€ ์ƒ‰์„ ์ฃผ๋ คํ•ด์„œ ์•ˆ๋œ๊ฒƒ



๐Ÿ“Œclick ์ด๋ฒคํŠธ

โœ ์š”์†Œ๋“ค์„ ์ปจ๋“œ๋กคํ• ๋•Œ๋Š” ๋ถ€๋ชจ์š”์†Œ๋ฅผ ๊ฑด๋“œ๋Š”๊ฒŒ ํŽธํ•˜๋‹ค.
๋ถ€๋ชจ์š”์†Œ๋กœ ๋ฐ–์— ์•ˆ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ž

.hidden-menu .ic-show.active .all-menu{display: block;}

ex) ๋ถ€๋ชจ์š”์†Œ a๊ฐ€ ๋ˆŒ๋ ธ์„๋•Œ b๊ฐ€ ๋˜๋ผ, c๊ฐ€ ๋˜๋ผ โ†’ O
ํ˜•์ œ์š”์†Œ a๊ฐ€ ๋ˆŒ๋ ธ์„๋•Œ b์‚ฌ ๋˜๋ผ โ†’ X


 $('.hidden-menu .ic-show').click(function(e){
    e.preventDefault();
    $(this).toggleClass("active");
    $('.bottom-menu').stop().slideToggle();
   
    if ($(this).hasClass('active')) {
      $('.all-menu').addClass("active");
      $('.top-menu-list').addClass("active");
    } else {
      // $('bottom-menu').slideUp();
      $('.all-menu').removeClass("active");
      $('.top-menu-list').removeClass("active");
    }
  })



๐Ÿ“Œ ์Šคํฌ๋กค ๋ฐ” ์—†์• ๊ธฐ

๋„ค๋น„๊ฒŒ์ด์…˜๋ฐ” ๋„˜์ณค์„๋•Œ ์Šฌ๋ผ์ด๋“œ๋ฅผ ๋งŒ๋“ค์–ด์ค€๋‹ค.
์•ˆ๋‹ค๋ฅด์—์„œ ์Šฌ๋ผ์ด๋“œ๋ฐ”๋Š” ์—†์• ์ค˜์•ผํ•จ

box-sizing: border-box;
overflow-x: auto;

์‘์šฉ์‹œ ๋ฐ•์Šค์—๋‹ค๊ฐ€ ํด๋ž˜์Šค ๋„ฃ์–ด์ฃผ๋ฉด๋จ

.box {
-ms-overflow-style: none; /* IE and Edge */
scrollbar-width: none; /* Firefox */
}
.box::-webkit-scrollbar {
display: none; /* Chrome, Safari, Opera*/
}



๐Ÿ“Œ ์‚ฌ์ด๋“œ ๋ฉ”๋‰ด ์ƒ์„ฑ,๋‹ซ๊ธฐ

โœ ์ƒ์„ฑ,ํŽผ์น˜๊ธฐ

๋ฉ”๋‰ด ๋ฒ„ํŠผ์„ ๋ˆŒ๋ €์„๋•Œ ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํŽผ์ณ์ง€๊ธฐ
๋‹ค๋ฅธ ์„น์…˜๋“ค๋ณด๋‹ค ์ œ์ผ ์œ„์— ๋– ์žˆ์–ด์•ผํ•œ๋‹ค.
->๋งˆํฌ์—…์—์„  dimmed๋ฅผ ๋งจ์œ„์— ์œ„์น˜์‹œํ‚จ๋‹ค.

โœ ์œ„ ์‚ฌ์ง„๊ณผ ๊ฐ™์ด ํ™œ์„ฑํ™” ๋œ ์ฐฝ ์•„๋ž˜์— ์žˆ๋Š” ์ปจํ…์ธ ๋“ค์€ ์–ด๋‘ก๊ฒŒ ์„ค์ •ํ•˜๋Š”, ํ”ํžˆ dimmed ๋ผ๊ณ  ๋ถˆ๋ฆฌ์šด๋‹ค.

.dimmed{
    position: fixed;
    top: 0;left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.3);
    z-index: 20;
    visibility: hidden;
    opacity: 0;
    transition: opactiy 0.3s;
}
/* ์ œ์ด์ฟผ๋ฆฌ */
.dimmed.active{
    opacity: 1;
    visibility: visible;
}

โ—ผ menu๊ฐ€ ํŽผ์ณ์กŒ์„๋•Œ body์— ๋งˆ์šฐ์Šค ํœ  ์•ˆ๋ณด์ด๊ฒŒ ํ•˜๋Š”๋ฒ•

body.hidden{
    overflow: hidden;
}
.header .sc-menu{
    position: fixed;
    left: 0;
    top: 0;
    z-index: 999;

    width: 82%;
    height: 100%;
    /* display: none; */

    transform: translateX(-100%);
    transition: 0.3s;
    background: #fff;
    z-index: 9999;

    overflow: auto; -> ๋‚ด์šฉ์ด ๋„˜์น˜๋ฉด ๋ณด์ด์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์Šคํฌ๋กค ์ƒ์„ฑ
    overflow-x: hidden;
}

์ œ์ด์ฟผ๋ฆฌ

  $('.link-menu').click(function(e){ //ํด๋ฆญํ–ˆ์„๋•Œ
    e.preventDefault();
    $('.sc-menu, .dimmed').addClass('active'); //ํŽผ์ณ์ง€๋Š” active ์ถ”๊ฐ€
    $('body').addClass('hidden');
  })//END

  $('.close, .dimmed').click(function(){ //๋‹ซํž˜ ๋ฒ„ํŠผ ํด๋ฆญ์‹œ
    $('.sc-menu, .dimmed').removeClass('active'); //active ๋นผ๊ธฐ
    $('body').removeClass('hidden');
  })




๐Ÿ“Œ ํฐํŠธ ์ ์šฉ

โœ ์›นํฐํŠธ

๋ฐฉ๋ฌธ์ž์˜ ๋กœ์ปฌ ์ปดํ“จํ„ฐ์— ํฐํŠธ ์„ค์น˜ ์—ฌ๋ถ€์™€ ์ƒ๊ด€ ์—†์ด ์˜จ๋ผ์ธ์˜ ํŠน์ • ์„œ๋ฒ„์— ์œ„์น˜ํ•œ ํฐํŠธ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ํ™”๋ฉด์— ํ‘œ์‹œํ•ด์ฃผ๋Š” ์›น ์ „์šฉ ํฐํŠธ์ด๋‹ค.

โ—ผ ์›นํฐํŠธ์˜ ์ข…๋ฅ˜์™€ ์ง€์› ๋ฒ”์œ„

  • ๊ตฌ๊ธ€ ํฐํŠธ์—์„œ ์›ํ•˜๋Š” ํฐํŠธ, ๊ตต๊ธฐ๋ฅผ ์„ ํƒํ•œํ›„ linkํ˜น์€ import๋กœ ๊ฐ€์ ธ์˜จ๋‹ค.

โœ font-face

ํฐํŠธ ํŒŒ์ผ์„ ์ €์žฅํ•˜์—ฌ ์ง์ ‘ ๋ถˆ๋Ÿฌ์™€ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

โ—ผ ์ ์šฉ ๋ฐฉ๋ฒ•

@font-face {
    font-family: 'Gilroy-Medium';
    //ํฐํŠธ ์ด๋ฆ„์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
    _ ํŒŒ์ผ๋ช…๊ณผ ๋™์ผํ•˜๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Œ!
    
    src: url(../font/Gilroy-Medium.woff2) format('woff2');
    //ํฐํŠธ ํŒŒ์ผ์˜ ๊ฒฝ๋กœ์™€ ํŒŒ์ผ ํ˜•์‹
    
    font-weight: 500;
    //๊ฐ ํฐํŠธ์˜ ๊ตต๊ธฐ ํ‘œ์‹œ
};



๐Ÿ“Œ ๋ ˆ์ด์•„์›ƒ

โœ ์•ˆ๋‹ค๋ฅด๋Š” ๊ณตํ†ต ๋ ˆ์ด์•„์›ƒ์ด ๋งŽ๋‹ค.
ํด๋ž˜์Šค๋ช…์„ ๊ณตํ†ต์œผ๋กœ ์ง€์ •ํ•ด์ฃผ๋ฉด ๋” ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ๊พธ๋ฏธ๊ธฐ ๊ฐ€๋Šฅํ•ด์ง„๋‹ค.




โœ(โ—”โ—กโ—”) ์˜ค๋‹ต

์Šค์™€์ดํผ์—๋Š” ๊ฐ€๋กœ,์„ธ๋กœ ์‚ฌ์ด์ฆˆ๊ฐ€ ์ด๋ฏธ ๋“ค์–ด์žˆ๋Š”๋ฐ

.swiper img {
    width: 100%;
    height: 85vh;
    object-fit: cover;
    background-image: cadetblue;
    /* background-size: 100%; */
}

์ด๋Ÿฐ์‹์œผ๋กœ ์Šค์™€์ดํผ ์ด๋ฏธ์ง€ height์— ์ง์ ‘์ ์ธ vh๋ผ๋Š” ์ˆ˜์น˜๋ฅผ ์ค˜์„œ ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๋ ˆ์ด์•„์›ƒ์œผ๋กœ ๋‚˜์˜ค์ง€ ์•Š์€๊ฒƒ

profile
๋‹ฌ๋ฆฌ๋Š” ๊ฑฐ๋ถ์ด

0๊ฐœ์˜ ๋Œ“๊ธ€