Apple iPad mini

์ „ํƒœ์ˆ˜ยท2023๋…„ 9์›” 2์ผ
0

project

๋ชฉ๋ก ๋ณด๊ธฐ
4/7
post-thumbnail

๐Ÿ“‚ Apple iPad mini

  • ์‚ฌ์ดํŠธ๋ช…: ๋ฏธ๋ž˜์—์…‹๋ฐ•ํ˜„์ฃผ์žฌ๋‹จ
  • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ: jQuery, gsap, swiper
  • ์‚ฌ์šฉ์–ธ์–ด: html, css, js
  • ์œ ํ˜•: ์ ์‘ํ˜• PC

โœ… Check Point

  • display: grid ์‚ฌ์šฉ
  • gsap ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ™œ์šฉ
  • scss/๋ฏธ๋””์–ด์ฟผ๋ฆฌ ํ™œ์šฉํ•œ ๋ฐ˜์‘ํ˜• ์ œ์ž‘
  • clip-path ํ™œ์šฉ
  • position:stickyํ™œ์šฉํ•œ header ์Šคํฌ๋กค ํšจ๊ณผ
  • ** css animation @keyframes ํ™œ์šฉํ•˜์—ฌ ์ด๋ฏธ์ง€๋กค๋ง
  • ๋ฐ˜์‘ํ˜• footer ์•„์ฝ”๋””์–ธ๋ฉ”๋‰ด

1. position:sticky ํ™œ์šฉํ•œ header ์Šคํฌ๋กค ํšจ๊ณผ

position: sticky; ๋ž€?
์„ค์ •๋œ ์œ„์น˜์— ๋„๋‹ฌํ•˜๊ธฐ ์ „๊นŒ์ง€๋Š” sticky๋กœ ์„ค์ •๋œ ์˜์—ญ์ด static ์†์„ฑ์ฒ˜๋Ÿผ ํ–‰๋™ํ•˜๋‹ค๊ฐ€ ์„ค์ •๋œ ์œ„์น˜์— ๋‹ค๋‹ค๋ฅด๋ฉด fixed ์†์„ฑ์ฒ˜๋Ÿผ ํ–‰๋™ํ•˜๋Š” ์†์„ฑ์ด๋‹ค.

๐Ÿ”ท HTML

<header class="header">
	<!-- ์ƒ๋žต -->
</header>
<nav class="sticky-nav">
  <!-- <div class="nav-background"></div> -->
  <div class="common-inner">
    <h2 class="ipad-title">
      <a href="">iPad&nbsp;mini</a>
    </h2>
    <div class="util-menu">
      <ul class="util-list">
        <li class="util-item current">
          <a href="" class="util-link">
            ๊ฐœ์š”</a>
        </li>
        <li class="util-item">
          <a href="" class="util-link">
            iPad๋ฅผ ์„ ํƒํ•˜๋Š” ์ด์œ </a>
        </li>
        <li class="util-item">
          <a href="" class="util-link">
            ์ œํ’ˆ ์‚ฌ์–‘</a>
        </li>
      </ul>
      <div class="util-btn">
        <label for="">
          <span class="blind">์œ ํ‹ธ๋ฉ”๋‰ด ๋ฒ„ํŠผ</span>
          <i class="util-chevron"></i>
        </label>
      </div>
      <div class="util-buy">
        <a href="" role="button" class="btn-buy">
          <span class="blind">iPad mini ๊ตฌ์ž…๋ฒ„ํŠผ</span>
          ๊ตฌ์ž…ํ•˜๊ธฐ
        </a>
      </div>
    </div>
  </div>
</nav>

๐ŸŒˆ CSS

.sticky-nav{
	position:sticky; 
    top:0; 
    width:100%;
    background: #fff; 
    z-index:100;
}

header ์Šคํฌ๋กค ํšจ๊ณผ๋ฅผ js๋กœ ๊ตฌํ˜„ํ•˜์ง€ ์•Š๊ณ , ๊ฐ„๋‹จํ•˜๊ฒŒ .sticky-nav ๋ฅผ .header ์•„๋ž˜์— ๋”ฐ๋กœ ๋งˆํฌ์—…ํ•˜์—ฌ
.stikcy-nav ์— position:sticky๋ฅผ ๋„ฃ์–ด ์Šคํฌ๋กค ํšจ๊ณผ๋ฅผ ๊ตฌํ˜„ํ•˜์˜€๋‹ค.

2. display: grid ์‚ฌ์šฉํ•˜์—ฌ ๋ ˆ์ด์•„์›ƒ ๊ตฌ์„ฑ


.grid-wrap{
	display: grid;
    grid-template-columns: repeat(2,50%);
    grid-template-rows:auto;            
    grid-template-areas:             
    "txt-wrap ."
    "img-left img-right" 
    ". point-wrap";            
    padding-top:98px;
    padding-bottom:42px; 
                
}

์•„์ดํŒจ๋“œ ๋ฏธ๋‹ˆ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•  ๋•Œ ์ฒ˜์Œ์—๋Š” ์˜ˆ์ „๋ถ€ํ„ฐ ๋งŽ์ด ์จ์˜ค๋˜ float / flex ๋ฐฉ์‹์œผ๋กœ ๋ ˆ์ด์•„์›ƒ์„ ์งœ๋ดค์œผ๋‚˜, ํ‹€์–ด์ง€๋Š” ๋ถ€๋ถ„๋“ค์ด ๋งŽ์•˜๊ณ  ์ƒ๋‹นํžˆ ๋ถˆํŽธํ•œ ๋ถ€๋ถ„๋“ค์ด ๋งŽ์•˜๋‹ค. ๊ทธ๋ž˜์„œ ๊ฐœ์ธํ”„๋กœ์ ํŠธ์ธ๋งŒํผ ์—ฌ๋Ÿฌ ๋ฐฉ์‹์œผ๋กœ ์ฝ”๋”ฉ์„ ํ•ด๋ณด๊ณ  ์‹ถ์—ˆ๊ณ , ํ‰์†Œ ์ž˜ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ–ˆ๋˜ grid๋กœ ๋ ˆ์ด์•„์›ƒ์„ ๊ตฌ์„ฑํ•ด ๋ณด์•˜๋‹ค.
๊ฒฐ๊ณผ์ ์œผ๋กœ๋Š” ํ‹€์–ด์ง€๋Š” ๋ถ€๋ถ„ ์—†์ด ํ›จ์”ฌ ํŽธํ•˜๊ฒŒ ๋ ˆ์ด์•„์›ƒ์„ ์žก์„ ์ˆ˜ ์žˆ์—ˆ๊ณ , ์ฝ”๋”ฉ์„ ํ•˜๋ฉด์„œ๋„ grid์— ๋Œ€ํ•ด ์ข€ ๋” ์‹ฌํ™”์ ์œผ๋กœ ์•Œ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ํŠนํžˆ grid-template-areas ํ™œ์šฉํ•ด ๋ ˆ์ด์•„์›ƒ์„ ๋ณด๋‹ค ์ง๊ด€์ ์œผ๋กœ ์œ ์šฉํ•˜๊ฒŒ ์žก์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

grid-template-areas์ด๋ž€?

๊ฐ ์˜์—ญ(Grid Area)์— ์ด๋ฆ„์„ ๋ถ™์ด๊ณ , ๊ทธ ์ด๋ฆ„์„ ์ด์šฉํ•ด์„œ ๋ฐฐ์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๊ณ , ์ง๊ด€์ ์ธ ๋ฐฉ๋ฒ•์ด๋‹ค.
์˜ˆ์‹œ์ฝ”๋“œ)

.container {
	grid-template-areas:
		"header header header"
		"   a    main    b   "
		"   .     .      .   "
		"footer footer footer";
}

์œ„์˜ ํ˜•ํƒœ์ฒ˜๋Ÿผ ๊ฐ์ž ์ฐจ์ง€ํ•˜๋Š” ์…€์˜ ๊ฐœ์ˆ˜๋งŒํผ ํ•ด๋‹น ์œ„์น˜์— ์ด๋ฆ„์„ ์จ์ฃผ๋ฉด ๋œ๋‹ค.
๊ฐ ์…€๋งˆ๋‹ค ๊ณต๋ฐฑ์„ ํ•˜๋‚˜์”ฉ ๋„ฃ์–ด์„œ ๊ตฌ๋ถ„ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.
header๋Š” ์ฒซ๋ฒˆ์งธ row์—์„œ 3๊ฐœ์˜ column์„ ์ฐจ์ง€ํ•˜๊ธฐ ๋–„๋ฌธ์— ๋งจ ์œ„์— 3๋ฒˆ ์ผ๊ณ ,
๋นˆ์นธ์€ ๋งˆ์นจํ‘œ ๋˜๋Š” โ€œnoneโ€์„ ์‚ฌ์šฉํ•˜๋ฉด ๋˜๊ณ , ๋งˆ์นจํ‘œ์˜ ๊ฐœ์ˆ˜๋Š” ์—ฌ๋Ÿฌ๊ฐœ๋ฅผ ์จ๋„ ์ƒ๊ด€ ์—†๋‹ค.

๊ฐ ์˜์—ญ์— ์ด๋ฆ„์„ ๋งค์นญํ•˜๋Š” ๋ฐฉ๋ฒ•)

.header { grid-area: header; }
.sidebar-a { grid-area: a; }
.main-content { grid-area: main; }
.sidebar-b { grid-area: b; }
.footer { grid-area: footer; }
/* ์ด๋ฆ„ ๊ฐ’์— ๋”ฐ์˜ดํ‘œ๊ฐ€ ์—†๋Š” ๊ฒƒ์— ์ฃผ์˜ */

3. gsap ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ™œ์šฉ

โœ”๏ธ 3-1) ๋น„๋””์˜ค์ปจํŠธ๋กค

๐Ÿ”ถ SCRIPT

gsap.set('.sc-hero .hero-desc .title',{
    yPercent:20,
    scale:0.9
})
intro=gsap.timeline({})

intro.to('.sc-hero .hero-title .hero-title-svg',{
    delay:1,
    opacity:0, 
    onComplete:function(){
      $('.sc-hero video').get(0).play()
    }
})
  .to('.sc-hero .hero-desc .title',{
    delay:2.5,
    opacity:1, 
    visibility:'visible',
    yPercent:0,
    scale:1
})

๋น„๋””์˜ค๊ฐ€ ๋ฐ”๋กœ ์žฌ์ƒ๋˜์ง€ ์•Š๊ณ , .hero-title-svg -> video -> .title ์ˆœ์„œ๋Œ€๋กœ ๋กœ๋“œ๋˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด
delay ๊ฐ’์„ ๋„ฃ์–ด ์ปจํŠธ๋กค ํ•˜์˜€๋‹ค.

3-2) background ์Šคํฌ๋กค ๋ฐ˜์‘

๐Ÿ”ถ SCRIPT

gsap.to('.sc-hero',{
  scrollTrigger:{
    trigger:".sc-hero",
    start:"0% 10%",
    end:"100% 50%",
    // markers:true,
    scrub:0,
  },
  ease:'none',
  'clip-path': 'inset(52px round 30px)'
})

.sc-hero ์˜ background๋ฅผ clip-path ๊ฐ’์„ ์ค˜์„œ ์Šคํฌ๋กค์— ๋ฐ˜์‘ํ•˜์—ฌ background์˜ clip-path ๊ฐ’์ด ๋ฐ”๋€” ์ˆ˜ ์žˆ๋„๋ก ๋„ฃ์–ด์คฌ๋‹ค.

3-3) Scroll text opacity

๐Ÿ”ถ SCRIPT

document.querySelectorAll('.sc-expo .expo-item').forEach(element => {
  gsap.from(element,{
    scrollTrigger:{
      trigger:element,
      start:"0% 90%",
      end:"100% 80%",
      // markers:true,
      scrub:0,
    },
    opacity:0,
  })
});

ํ…์ŠคํŠธ๊ฐ€ ์žˆ๋Š” .expo-item ๋“ค์„ ๊ฐ๊ฐ ์žก์•„์ฃผ๊ธฐ ์œ„ํ•ด forEach ๋ฌธ์„ ์‚ฌ์šฉํ•˜์˜€๊ณ , ๊ฐ๊ฐ์˜ ์—˜๋ฆฌ๋จผํŠธ๋“ค์„ ์ „๋ถ€ ์„ ํƒํ•˜๊ธฐ ์œ„ํ•ด document.querySelectorAll ์„ ๋„ฃ์–ด ์„ ํƒํ–ˆ๋‹ค.
๋งˆ์ฐฌ๊ฐ€์ง€, gsap๋ฅผ ํ™œ์šฉํ•ด ์Šคํฌ๋กค์˜ ์‹œ์ž‘๊ณผ ๋ ์ง€์ ์„ ์„ค์ •ํ•˜๊ณ , opacity:0 ์„ ๋„ฃ์–ด ์Šคํฌ๋กค๋˜๋ฉด ๊ธ€์ž๋“ค์ด ์‚ฌ๋ผ์กŒ๋‹ค ์„ ๋ช…ํ•ด์งˆ ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •ํ–ˆ๋‹ค.

3-4) css animation @keyframes ํ™œ์šฉํ•˜์—ฌ ์ด๋ฏธ์ง€๋กค๋ง

js๋‚˜ jQuery๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ , ๊ฐ„๋‹จํ•˜๊ฒŒ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ keyframes๋ฅผ ๋งŒ๋“ค์–ด ์‚ฌ์šฉํ–ˆ๋‹ค.
css animation์˜ ์žฅ์ ์€ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์• ๋‹ˆ๋ฉ”์ด์…˜์˜ ์„ฑ๋Šฅ์„ ํšจ์œจ์ ์œผ๋กœ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํ˜„์žฌ ์•ˆ๋ณด์ด๋Š” ์—˜๋ฆฌ๋จผํŠธ์— ๋Œ€ํ•œ ์• ๋‹ˆ๋ฉ”์ด์…˜์€ ์—…๋ฐ์ดํŠธ ์ฃผ๊ธฐ๋ฅผ ์ค„์—ฌ ๋ถ€ํ•˜๋ฅผ ์ตœ์†Œํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค.

CSS animation ์˜ ์†์„ฑ ์ข…๋ฅ˜
animation-name : ์• ๋‹ˆ๋ฉ”์ด์…˜์˜ ์ค‘๊ฐ„ ์ƒํƒœ๋ฅผ ์ง€์ •ํ•˜๊ธฐ ์œ„ํ•œ ์ด๋ฆ„์„ ์ •์˜ํ•œ๋‹ค. ์ค‘๊ฐ„ ์ƒํƒœ๋Š” @keyframes ๊ทœ์น™์„ ์ด์šฉํ•˜์—ฌ ๊ธฐ์ˆ .
animation-duration : ํ•œ ์‹ธ์ดํด์˜ ์• ๋‹ˆ๋ฉ”์ด์…˜์ด ์–ผ๋งˆ์— ๊ฑธ์ณ ์ผ์–ด๋‚ ์ง€ ์ง€์ •ํ•œ๋‹ค.
animation-delay : ์—˜๋ฆฌ๋จผํŠธ๊ฐ€ ๋กœ๋“œ๋˜๊ณ  ๋‚˜์„œ ์–ธ์ œ ์• ๋‹ˆ๋ฉ”์ด์…˜์ด ์‹œ์ž‘๋ ์ง€ ์ง€์ •ํ•œ๋‹ค.
animation-direction : ์• ๋‹ˆ๋ฉ”์ด์…˜์ด ์ข…๋ฃŒ๋˜๊ณ  ๋‹ค์‹œ ์ฒ˜์Œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ• ์ง€ ์—ญ๋ฐฉํ–ฅ์œผ๋กœ ์ง„ํ–‰ํ• ์ง€ ์ง€์ •ํ•œ๋‹ค.
animation-iteration-count : ์• ๋‹ˆ๋ฉ”์ด์…˜์ด ๋ช‡ ๋ฒˆ ๋ฐ˜๋ณต๋ ์ง€ ์ง€์ •ํ•œ๋‹ค. infinite ๋กœ ์ง€์ •ํ•˜์—ฌ ๋ฌดํ•œํžˆ ๋ฐ˜๋ณตํ•  ์ˆ˜ ์žˆ๋‹ค.
animation-play-state : ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ๋ฉˆ์ถ”๊ฑฐ๋‚˜ ๋‹ค์‹œ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค.
animation-timing-function : ์ค‘๊ฐ„ ์ƒํƒœ๋“ค์˜ ์ „ํ™˜์„ ์–ด๋–ค ์‹œ๊ฐ„๊ฐ„๊ฒฉ์œผ๋กœ ์ง„ํ–‰ํ• ์ง€ ์ง€์ •ํ•œ๋‹ค.
animation-fill-mode : ์• ๋‹ˆ๋ฉ”์ด์…˜์ด ์‹œ์ž‘๋˜๊ธฐ ์ „์ด๋‚˜ ๋๋‚˜๊ณ  ๋‚œ ํ›„ ์–ด๋–ค ๊ฐ’์ด ์ ์šฉ๋ ์ง€ ์ง€์ •ํ•œ๋‹ค.

๐Ÿ”ท HTML

<div class="apps-collection">
  <span class="blind">
    iMovie, Safari, ์Œ์•…, News, Procreate, ๋ฉ”๋ชจ, Adobe Lightroom, MasterClass, Keynote, Adobe Photoshop ๋“ฑ์˜ ์•ฑ์ด ํ‘œ์‹œ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  </span>
  <div class="top-area">
    <ul class="collection-list">
      <li class="collection-item">
        <p class="caption">Culture Trip</p>
        <div class="ipad-container-stand app-01">
          <div class="ipad-hardware"></div>
          <div class="ipad-screen"></div>
        </div>
      </li
      <li class="collection-item">
        <p class="caption">Adobe Photoshop</p>
        <div class="ipad-container-stand app-05">
          <div class="ipad-hardware"></div>
          <div class="ipad-screen"></div>
        </div>
      </li>
      ...
      <!- ์ƒ๋žต ->
    </ul>
    <ul class="collection-list">
      <li class="collection-item">
        <p class="caption">Culture Trip</p>
        <div class="ipad-container-stand app-01">
          <div class="ipad-hardware"></div>
          <div class="ipad-screen"></div>
        </div>
      </li>
      <li class="collection-item">
        <p class="caption">Procreate</p>
        <div class="ipad-container-lay app-02">
          <div class="ipad-hardware"></div>
          <div class="ipad-screen"></div>
        </div>
      </li>
      ...
      <!- ์ƒ๋žต ->
    </ul>
  </div>
  <div class="bottom-area">
    <ul class="collection-list">
      <li class="collection-item">
        <div class="ipad-container-stand app-11">
          <div class="ipad-hardware"></div>
          <div class="ipad-screen"></div>
        </div>
        <p class="caption">Culture Trip</p>
      </li>
      <li class="collection-item">
        <div class="ipad-container-lay app-12">
          <div class="ipad-hardware"></div>
          <div class="ipad-screen"></div>
        </div>
        <p class="caption">Procreate</p>
      </li>
      ...
      <!- ์ƒ๋žต ->
    </ul>
    <ul class="collection-list">
      <li class="collection-item">
        <div class="ipad-container-stand app-11">
          <div class="ipad-hardware"></div>
          <div class="ipad-screen"></div>
        </div>
        <p class="caption">Zinnia</p>
      </li>
      <li class="collection-item">
        <div class="ipad-container-lay app-12">
          <div class="ipad-hardware"></div>
          <div class="ipad-screen"></div>
        </div>
        <p class="caption">Pages</p>
      </li>
      ...
      <!- ์ƒ๋žต ->
    </ul>
  </div>   
</div>
<div class="collection-controls">
  <span class="blind">์Šฌ๋ผ์ด๋“œ ์‹œ์ž‘/์ •์ง€ ๋ฒ„ํŠผ</span>
  <button class="button-play-pause">
  </button> 
</div>

.apps-collection ์„ .top-area , .bottom-area ๋กœ ๋‚˜๋ˆ„์–ด ์ด๋ฏธ์ง€ ๋ฆฌ์ŠคํŠธ๋“ค์„ ul > li ๋กœ ๊ตฌ์„ฑํ•ด ๋‚˜์—ดํ–ˆ๋‹ค.

๐ŸŒˆ SCSS

.apps-collection {
        .top-area {
            display: flex; justify-content:flex-end; padding:10px 0 15px; 

            .collection-list {
                animation: marquee 50s infinite linear;
                align-items:flex-end;
                .caption {padding-bottom:16px;}
            }
        }
        .bottom-area {
            display: flex;
            .collection-list {
                animation: marquee2 50s infinite linear;
                align-items:flex-start;
                .caption {padding-top:16px;}
            }
        }

        @keyframes marquee {
            0%{transform: translateX(0%);}
            100%{transform: translateX(100%);}
        }
        @keyframes marquee2 {
            0%{transform: translateX(0%);}
            100%{transform: translateX(-100%);}
        }
        .collection-list {display: flex;}
        .collection-item {padding: 20px 26px;}
        .caption {font-family:'SF Pro Text' , 'SF Pro KR'; text-align:center;}  

        @include tablet {
            .collection-item {padding: 8px 16px;}

            .caption {line-height:1.4167;}
        }

        @include mobile {
            .collection-item {padding: 10px 18px;}
        }

    }

์ด๋ฏธ์ง€ ๋ฆฌ์ŠคํŠธ๋ฅผ display:flex; ๋กœ ๋‚˜์—ดํ•˜๊ณ , @keyfames ํ†ตํ•ด ์ด๋ฏธ์ง€๋“ค์„ ๋กค๋ง ์‹œ์ผฐ๋‹ค.

๐Ÿ”ถ SCRIPT

// sc-abbs ์ด๋ฏธ์ง€ ์ปจํŠธ๋กค ๋ฒ„ํŠผ
    $('.collection-controls .button-play-pause').click(function() {
      if ($('.button-play-pause').hasClass('icon-play')) {
          $('.button-play-pause').removeClass('icon-play');
          $('.collection-list').css('animation-play-state','running');
      } else {
          $('.button-play-pause').addClass('icon-play');
          $('.collection-list').css('animation-play-state','paused');
      }
    });

๋กค๋ง๋˜๊ณ  ์žˆ๋Š” ์ด๋ฏธ์ง€๋“ค์„ ์ •์ง€/๋ฆฌํ”Œ๋ ˆ์ด ํ•  ์ˆ˜ ์žˆ๋Š” ์ด๋ฏธ์ง€ ์ปจํŠธ๋กค ๋ฒ„ํŠผ์„ ๋งŒ๋“ค์—ˆ๋‹ค.
.collection-controls .button-play-pause ์„ ํด๋ฆญํ•˜๋ฉด .icon-play ํด๋ž˜์Šค๊ฐ€ ์ถ”๊ฐ€๋˜๋ฉด์„œ ์ •์ง€ or ๋ฆฌํ”Œ๋ ˆ์ด์— ๋งž๋Š” ์•„์ด์ฝ˜์œผ๋กœ ๋ณ€๊ฒฝ๋œ๋‹ค.

4. footer(max-width:833px;) ์•„์ฝ”๋””์–ธ๋ฉ”๋‰ด ๊ตฌํ˜„

๐Ÿ”ท HTML

<nav class="foot-nav">
  <div class="cate-area">
    <div class="apple-wrap">
      <a href="" class="apple-link">
        <span class="blind">Apple</span>
      </a>
    </div>
    <div class="ipad-wrap">
      <a href="">iPad</a>
    </div>
    <div class="ipad-wrap">
      <a href="">iPad mini</a>
    </div>       
  </div>
  <div class="menu-area">
    <div class="menu-box">
      <div class="menu-box-item shop">
        <h3 class="menu-title"> 
          <span class="menu-title-txt">์‡ผํ•‘ ๋ฐ ์•Œ์•„๋ณด๊ธฐ</span>
          <div class="menu-title-btn">
            <span class="menu-title-txt">์‡ผํ•‘ ๋ฐ ์•Œ์•„๋ณด๊ธฐ</span>
            <span class="menu-title-icon">+</span>
          </div>
        </h3>
        <ul class="menu-list">
          <li><a href="">์Šคํ† ์–ด</a></li>
          <li><a href="">Mac</a></li>
          <li><a href="">iPad</a></li>
          <li><a href="">iPhone</a></li>
          <li><a href="">Watch</a></li>
          <li><a href="">AirPods</a></li>
          <li><a href="">TV ๋ฐ ํ™ˆ</a></li>
          <li><a href="">AirTag</a></li>
          <li><a href="">์•ก์„ธ์„œ๋ฆฌ</a></li>
        </ul>
      </div>
      <div class="menu-box-item row">
          <span class="menu-title-txt">Apple ์ง€๊ฐ‘</span>
          <div class="menu-title-btn">
            <span class="menu-title-txt">Apple ์ง€๊ฐ‘</span>
            <span class="menu-title-icon">+</span>
          </div>
        </h3>
        <ul class="menu-list">
          <li><a href="">์ง€๊ฐ‘</a></li>
          <li><a href="">Apple Pay</a></li>
        </ul>
      </div>
    </div>
    <div class="menu-box">
      <div class="menu-box-item">
        <h3 class="menu-title"> 
          <span class="menu-title-txt">๊ณ„์ •</span>
          <div class="menu-title-btn">
            <span class="menu-title-txt">๊ณ„์ •</span>
            <span class="menu-title-icon">+</span>
          </div>
        </h3>
        <ul class="menu-list">
          <li><a href="">Apple ID ๊ด€๋ฆฌ</a></li>
          <li><a href="">Apple Store ๊ณ„์ •</a></li>
          <li><a href="">iCloud.com</a></li>
        </ul>
      </div>
      <div class="menu-box-item row">
        <h3 class="menu-title"> 
          <span class="menu-title-txt">์—”ํ„ฐํ…Œ์ธ๋จผํŠธ</span>
          <div class="menu-title-btn">
            <span class="menu-title-txt">์—”ํ„ฐํ…Œ์ธ๋จผํŠธ</span>
            <span class="menu-title-icon">+</span>
          </div>
        </h3>
        <ul class="menu-list">
          <li><a href="">Apple One</a></li>
          <li><a href="">Apple TV+</a></li>
          <li><a href="">Apple Music</a></li>
          <li><a href="">Apple Music</a></li>
          <li><a href="">Apple Arcade</a></li>
          <li><a href="">Apple Podcasts</a></li>
          <li><a href="">Apple Books</a></li>
          <li><a href="">App Store</a></li>
        </ul>
      </div>
    </div>
    <div class="menu-box">
      <div class="menu-box-item store">
        <h3 class="menu-title"> 
          <span class="menu-title-txt">Apple Store</span>
          <div class="menu-title-btn">
            <span class="menu-title-txt">Apple Store</span>
            <span class="menu-title-icon">+</span>
          </div>
        </h3>
        <ul class="menu-list">
          <li><a href="">๋งค์žฅ ์ฐพ๊ธฐ</a></li>
          <li><a href="">Genius Bar</a></li>
          <li><a href="">Today at Apple</a></li>
          <li><a href="">Apple ์บ ํ”„</a></li>
          <li><a href="">Apple Store ์•ฑ</a></li>
          <li><a href="">์ธ์ฆ ๋ฆฌํผ๋น„์‰ฌ ์ œํ’ˆ</a></li>
          <li><a href="">๊ธˆ์œต ํ˜œํƒ</a></li>
          <li><a href="">Apple Trade In</a></li>
          <li><a href="">์ฃผ๋ฌธ ์ƒํƒœ</a></li>
          <li><a href="">์‡ผํ•‘ ๋„์›€๋ง</a></li>
        </ul>
      </div>
    </div>
    <div class="menu-box">
      <div class="menu-box-item business">
        <h3 class="menu-title"> 
          <span class="menu-title-txt">๋น„์ฆˆ๋‹ˆ์Šค</span>
          <div class="menu-title-btn">
            <span class="menu-title-txt">๋น„์ฆˆ๋‹ˆ์Šค</span>
            <span class="menu-title-icon">+</span>
          </div>
        </h3>
        <ul class="menu-list">
          <li><a href="">Apple๊ณผ ๋น„์ฆˆ๋‹ˆ์Šค</a></li>
          <li><a href="">๋น„์ฆˆ๋‹ˆ์Šค๋ฅผ ์œ„ํ•œ ์ œํ’ˆ ์‡ผํ•‘ํ•˜๊ธฐ</a></li>
        </ul>
      </div>
      <div class="menu-box-item row">
        <h3 class="menu-title"> 
          <span class="menu-title-txt">๊ต์œก</span>
          <div class="menu-title-btn">
            <span class="menu-title-txt">๊ต์œก</span>
            <span class="menu-title-icon">+</span>
          </div>
        </h3>
        <ul class="menu-list">
          <li><a href="">Apple๊ณผ ๊ต์œก</a></li>
          <li><a href="">์ดˆ์ค‘๊ณ ์šฉ ์ œํ’ˆ ์‡ผํ•‘ํ•˜๊ธฐ</a></li>
          <li><a href="">๋Œ€ํ•™ ์ƒํ™œ์„ ์œ„ํ•œ ์ œํ’ˆ ์‡ผํ•‘ํ•˜๊ธฐ</a></li>
        </ul>
      </div>
    </div>
    <div class="menu-box">
      <div class="menu-box-item value">
        <h3 class="menu-title"> 
          <span class="menu-title-txt">Apple์˜ ๊ฐ€์น˜๊ด€</span>
          <div class="menu-title-btn">
            <span class="menu-title-txt">Apple์˜ ๊ฐ€์น˜๊ด€</span>
            <span class="menu-title-icon">+</span>
          </div>
        </h3>
        <ul class="menu-list">
          <li><a href="">์†์‰ฌ์šด ์‚ฌ์šฉ</a></li>
          <li><a href="">๊ต์œก</a></li>
          <li><a href="">ํ™˜๊ฒฝ</a></li>
          <li><a href="">๊ฐœ์ธ์ •๋ณด ๋ณดํ˜ธ</a></li>
          <li><a href="">ํ˜‘๋ ฅ์—…์ฒด์— ๋Œ€ํ•œ ์ฑ…์ž„</a></li>
        </ul>
      </div>
      <div class="menu-box-item row">
        <h3 class="menu-title"> 
          <span class="menu-title-txt">Apple ์ •๋ณด</span>
          <div class="menu-title-btn">
            <span class="menu-title-txt">Apple ์ •๋ณด</span>
            <span class="menu-title-icon">+</span>
          </div>
        </h3>
        <ul class="menu-list">
          <li><a href="">Newsroom</a></li>
          <li><a href="">Apple ๋ฆฌ๋”์‰ฝ</a></li>
          <li><a href="">์ฑ„์šฉ ์•ˆ๋‚ด</a></li>
          <li><a href="">์œค๋ฆฌ ๋ฐ ๊ทœ์ • ์ค€์ˆ˜</a></li>
          <li><a href="">์ด๋ฒคํŠธ</a></li>
          <li><a href="">์ผ์ž๋ฆฌ ์ฐฝ์ถœ</a></li>
          <li><a href="">Apple ์—ฐ๋ฝ์ฒ˜</a></li>
        </ul>
      </div>
    </div>
  </div>
</nav>

๐ŸŒˆ SCSS

.foot-nav {
...
<!- ์ƒ๋žต ->
	// foot-nav - menu-area
    .menu-area {
    	display: flex;
        	.menu-box {
            	flex:1 20%;

				.menu-box-item {
                	.menu-title {
                    	color:#1d1d1f; 
                        	.menu-title-txt {
                                display: block;
                                font-size:12px; 
                                font-weight:600;
                                margin-right:20px; 
                                margin-bottom:0.8em;
                            }
                            .menu-title-btn { 
                                display: none;
                            }
                        }
                        .menu-list {
                            margin-right:20px;
                            li {margin-bottom: 0.8em;}
                            li:last-child {margin-bottom: 0;}
                            a {color:#424245; font-weight:300;}
                        }
                        &.row {padding-top: 24px;}
                    }
                }

	@include layTablet //max-width:833px; {
    	flex-direction:column;

		.menu-box {
        	flex:auto;

			.menu-box-item {
            	position: relative;
                z-index: 1;
                border-bottom:1px solid #d2d2d7;
                overflow: hidden;

					.menu-title {
                    	.menu-title-txt {
                        	display: none;
                        }
                        .menu-title-btn {
                        	display: flex;
                            justify-content:space-between;
                            width: 100%;
                            padding-top: 10px;
                            padding-bottom: 10px;
                            background: #f5f5f7;
                            cursor:pointer;
                            position: relative;
                            user-select:none;
                            z-index: 2;
                            	.menu-title-txt {
                                	display: block;
                                    margin: 0;
                                    font-weight:400;
                                 }
                                 .menu-title-icon {
                                 	font-size:14px;
                                    margin-top:-2px;
                                    margin-right: 8px;
                                    transition:transform .3s ease;
                                  }
                               }
                            }
                            &.row {padding-top: 0;}

                            .menu-list {
                                margin: 0;
                                overflow: hidden;
                                visibility:hidden;
                                padding-top: 5px;
                                padding-bottom: 16px;
                                position: absolute;
                                top: 100%;
                                left: 0;
                                width: 100%;
                                z-index: -1;
                                transform:translateY(-100px);
                                will-change: transform;
                                    li {margin-bottom: 0;}
                                    a {
                                        display: block;
                                        padding: 6px 14px;
                                    }
                                }
                            &.on {
                                .menu-list {
                                    position: static;
                                    visibility: visible;
                                    transform:none;
                                    transition:transform 300ms ease;
                                }
                                .menu-title-icon {
                                    transform:rotate(45deg) scale(1.08);
                                }
                            }
                        }
                    }
                }
            } 
        }

max-width:833px; ์ „ ๊นŒ์ง€ display:flex; , flex: 1 20%; ๋ฅผ ๋„ฃ์–ด ์ „์ฒด ์ปฌ๋Ÿผ์„ 5๋“ฑ๋ถ„ ํ•˜์—ฌ ๊ตฌ์กฐ๋ฅผ ์žก์•„์คฌ๊ณ , max-width:833px; ~ ๋ถ€ํ„ฐ ์•„์ฝ”๋””์–ธ ๋ฉ”๋‰ด๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด flex-direction์„ column์œผ๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ๋ ˆ์ด์•„์›ƒ์„ ๋ณ€๊ฒฝํ•ด์ฃผ์—ˆ๋‹ค. ๊ธฐ์กด float์˜ ๋ฐฉ์‹๋ณด๋‹ค๋Š” ํ›จ์”ฌ ํŽธํ•˜๊ฒŒ ๊ตฌํ˜„ํ–ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค.

๐Ÿ”ถ SCRIPT

$('.menu-box-item').click(function(){
  if ($(this).hasClass('on')) {
    $('.menu-box-item').removeClass('on')

  } else {
    $('.menu-box-item').removeClass('on')
    $(this).addClass('on');
  }

});

scss์—์„œ ๋ถ€๋ชจ์š”์†Œ์ธ .menu-box-item ์˜ ์ž์‹์š”์†Œ์ธ .menu-list ๋ฅผ overflow:hidden;, visibility:hidden; ์ฒ˜๋ฆฌ ํ–ˆ๋‹ค๊ฐ€, jQuery๋ฅผ ํ™œ์šฉํ•ด .menu-box-item์„ ํด๋ฆญํ•˜๋ฉด .on์„ ๋ถ™์—ฌ .menu-list ๊ฐ€ visible; ๋  ์ˆ˜ ์žˆ๋„๋ก ์ฒ˜๋ฆฌํ–ˆ๋‹ค.

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