728x90
๋ฒํผ ํด๋ฆญ์ ํ๋จ์ ๋ด์ฉ์ด ์ถ๋ ฅ๋๋ ํญ์ ๋ง๋ค์ด๋ณด๊ฒ ์ต๋๋ค.
๋์์ธ์์๋ฅผ ์ถ๊ฐํ๊ธฐ ์ํด ํ์ฑํ๋ ๋ฒํผ ๋ถ๋ถ์ ํ๋์ div๋ก ์ปจํธ๋กค ํ์ฌ ํด๋ฆญ์ ์์น๋ฅผ ์ด๋์์ผ ์ข ๋ ์ธ๋ จ(?)๋๊ฒ
๋์์ธ ํด๋ณด์์ต๋๋ค.
1. HTML
<div class="wrap">
<div class="tab_wrap">
<div class="tab_buttons">
<button class="active">๊ณต์ง์ฌํญ</button>
<button>๋ด์ค</button>
<button>์ผ๋์ผ๋ฌธ์</button>
<div class="button_bg"></div> <!-- ํ์ฑํ์ ์ปจํธ๋กค ํ ๋ถ๋ถ -->
</div>
<div class="tab_contents">
<div class="tab_content active">
๊ณต์ง์ฌํญ์
๋๋ค. <br>
๊ณต์ง์ฌํญ์
๋๋ค. <br>
๊ณต์ง์ฌํญ์
๋๋ค. <br>
๊ณต์ง์ฌํญ์
๋๋ค. <br>
๊ณต์ง์ฌํญ์
๋๋ค.
</div>
<div class="tab_content">
News์
๋๋ค. <br>
News์
๋๋ค. <br>
News์
๋๋ค. <br>
News์
๋๋ค. <br>
News์
๋๋ค.
</div>
<div class="tab_content">
1:1 ๋ฌธ์ ์
๋๋ค. <br>
1:1 ๋ฌธ์ ์
๋๋ค. <br>
1:1 ๋ฌธ์ ์
๋๋ค. <br>
1:1 ๋ฌธ์ ์
๋๋ค. <br>
1:1 ๋ฌธ์ ์
๋๋ค.
</div>
</div>
</div>
</div>
2. CSS
* {
padding:0;
margin:0;
box-sizing:border-box;
}
body{
background-color:#eee;
}
.wrap {
padding:30px;
}
.tab_buttons{
position:relative;
padding:12px 0;
overflow:hidden;
}
.button_bg{
position:absolute;
top:50%;
left:0;
z-index:1;
transform: translateY(-50%);
display:inline-block;
width:108px;
height:45px;
background: linear-gradient(#e66465, #9198e5);
border-radius:45px;
}
.tab_buttons button {
position:relative;
z-index:2;
float:left;
min-width:32px;
height: 45px;
padding:0 22px;
border:0 none;
background-color:transparent;
font-size:16px;
outline:none;
cursor: pointer;
}
.tab_buttons button.active{
color:#fff;
font-weight:bold;
}
.tab_contents{
position:relative;
}
.tab_content{
position:absolute;
top:0;
left:20px;
z-index:1;
padding:20px;
transition: all 0.4s;
opacity:0;
color:#212121;
}
.tab_content.active{
left:0;
opacity:1;
}
๐น button ์ ํด๋ฆญ์ด๋ฒคํธ๋ฅผ ์ฃผ๊ธฐ ์ํด์ button์ด button_bg๋ณด๋ค z-index๊ฐ ๋์์ผ ํฉ๋๋ค.
๐น tab_content ๋ ๊ตณ์ด absolute๋ฅผ ํ์ง ์์๋ ๋์ง๋ง, ์ค๋ฅธ์ชฝ์์ ์ผ์ชฝ์ผ๋ก ํ์ด๋์ธ ๋๋ ํจ๊ณผ๋ฅผ ์ฃผ๊ณ ์ถ์ด์ absolute๋ก ๊ตฌํํ์์ต๋๋ค.
3. JQuery
$(document).ready(function(){
$('.tab_buttons button').click(function(){
var activeBtn = $('.button_bg');
var _this = $(this);
var width = $(_this).outerWidth(); // button_bg ์๋ ์ ์ฉํ ๋์ผํ width๊ฐ ํ์
var left = $(_this).position().left; // button_bg๊ฐ ์ฎ๊ฒจ๊ฐ ์์น ํ์
var thisIndex = $(_this).index(); // ํด๋ฆญํ ๊ฐ์ฒด์ ์์์ ๋ฐ๋ผ ์ปจํ
์ธ ๋ฅผ ํ์ฑํ
activeBtn.animate({
width : width + 'px',
left : left + 'px'
}, 300, function(){
$(_this).addClass('active').siblings().removeClass('active');
});
$('.tab_content').eq(thisIndex).addClass('active').siblings().removeClass('active');
// button ์์์ ๋์ผํ tab_content ์ active๋ฅผ ์ฃผ์ด ์ปจํ
์ธ ํ์ฑํ, ๋๋จธ์ง๋ active์ญ์
})
});
๋ค๋ค jquery ๋ง์ด ์ฐ์๋์?
์์ฆ์ ์ฃผ๋ก javascript๋ฅผ ์ฐ๊ธฐ๋๋ฌธ์ jquery๋ ์ ๋ง ์ค๋ซ๋ง์ด๋ค์. ๐
๋ฐ์ํ
'๊ฐ๋ฐ ๐พ > HTML,CSS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๊ฐ์ด๋ฐ์ ์ข์ฐ๋ก ํผ์ณ์ง๊ฒ ํ๊ธฐ (0) | 2021.06.13 |
---|---|
์ฒดํฌ๋ฐ์ค CSS ์ปค์คํ (0) | 2021.06.06 |
CSS ํจํด ์ด์ผ๊ธฐ - BEM, SMACSS, OOCSS (0) | 2021.02.07 |
์์ฃผ์ฐ๋ css ์ ๋ฆฌ (0) | 2021.02.05 |
๋ชจ๋ฐ์ผ๊ฐ๋ฐ์ ์์์ฃผ๋ฉด ์ข์ HTML/CSS (0) | 2019.11.18 |