display: grid
์ฌ์ฉclip-path
ํ์ฉposition:sticky
ํ์ฉํ header ์คํฌ๋กค ํจ๊ณผ @keyframes
ํ์ฉํ์ฌ ์ด๋ฏธ์ง๋กค๋ง
position: sticky;
๋?
์ค์ ๋ ์์น์ ๋๋ฌํ๊ธฐ ์ ๊น์ง๋ sticky๋ก ์ค์ ๋ ์์ญ์ด static ์์ฑ์ฒ๋ผ ํ๋ํ๋ค๊ฐ ์ค์ ๋ ์์น์ ๋ค๋ค๋ฅด๋ฉด fixed ์์ฑ์ฒ๋ผ ํ๋ํ๋ ์์ฑ์ด๋ค.
<header class="header">
<!-- ์๋ต -->
</header>
<nav class="sticky-nav">
<!-- <div class="nav-background"></div> -->
<div class="common-inner">
<h2 class="ipad-title">
<a href="">iPad 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>
.sticky-nav{
position:sticky;
top:0;
width:100%;
background: #fff;
z-index:100;
}
header ์คํฌ๋กค ํจ๊ณผ๋ฅผ js๋ก ๊ตฌํํ์ง ์๊ณ , ๊ฐ๋จํ๊ฒ .sticky-nav ๋ฅผ .header ์๋์ ๋ฐ๋ก ๋งํฌ์ ํ์ฌ
.stikcy-nav ์position:sticky
๋ฅผ ๋ฃ์ด ์คํฌ๋กค ํจ๊ณผ๋ฅผ ๊ตฌํํ์๋ค.
.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; } /* ์ด๋ฆ ๊ฐ์ ๋ฐ์ดํ๊ฐ ์๋ ๊ฒ์ ์ฃผ์ */
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 ๊ฐ์ ๋ฃ์ด ์ปจํธ๋กค ํ์๋ค.
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
๊ฐ์ด ๋ฐ๋ ์ ์๋๋ก ๋ฃ์ด์คฌ๋ค.
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
์ ๋ฃ์ด ์คํฌ๋กค๋๋ฉด ๊ธ์๋ค์ด ์ฌ๋ผ์ก๋ค ์ ๋ช ํด์ง ์ ์๋๋ก ์ค์ ํ๋ค.
@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 : ์ ๋๋ฉ์ด์ ์ด ์์๋๊ธฐ ์ ์ด๋ ๋๋๊ณ ๋ ํ ์ด๋ค ๊ฐ์ด ์ ์ฉ๋ ์ง ์ง์ ํ๋ค.
<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 ๋ก ๊ตฌ์ฑํด ๋์ดํ๋ค.
.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
ํตํด ์ด๋ฏธ์ง๋ค์ ๋กค๋ง ์์ผฐ๋ค.
// 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 ๋ฆฌํ๋ ์ด์ ๋ง๋ ์์ด์ฝ์ผ๋ก ๋ณ๊ฒฝ๋๋ค.
<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>
.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์ ๋ฐฉ์๋ณด๋ค๋ ํจ์ฌ ํธํ๊ฒ ๊ตฌํํ๋ ๊ฒ ๊ฐ๋ค.
$('.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; ๋ ์ ์๋๋ก ์ฒ๋ฆฌํ๋ค.