
NEW ๋ฆฌ๋ด์ผ!!
์ฌ์ดํธ๋ช
: ์์ธ์์ฒญ
์์
๊ธฐ๊ฐ: 3์ผ ์์
๋ผ์ด๋ธ๋ฌ๋ฆฌ: swiper, jQuery
์ ํ: PC ์ ์ํ, ํด๋ก ์ฝ๋ฉ
์ฐธ์ฌ๋: 100%
๊ด๊ณต์๋ ๋งํฌ์ ์ด ํนํ ์ค์ํ๋ค
์น์ ๊ทผ์ฑ ํ์ง๋งํฌ - ์ฅ์ ์ธ ๋ฐ ๊ณ ๋ น์๊ฐ ์น ์ฌ์ดํธ ์ด์ฉ์ ๋ถํธ์ด ์๋๋ก ์น ์ ๊ทผ์ฑ ํ์ค์ง์นจ์ ์ค์ํ ์ฐ์ ์ฌ์ดํธ์ ๋ํด ์น ์ ๊ทผ์ฑ ์์ค์ ์ธ์ ํ๊ณ ์ด๋ฅผ ์์งํ๋ ํ์ง ๋งํฌ๋ฅผ ๋ถ์ฌํ๋ ์ธ์ฆ์ ๋
/* ํฐํธ๋จผ์ */
@import url('https://fonts.googleapis.com/css2?family=Nanum+Gothic:wght@400;700&display=swap');
@import url(./reset.css);
@import url(./common.css);
--๋ฆฌ๋ด์ผ๋ก ์ธํด ์ ๋ฐ์ดํธ--

์๊ฐ ์ฅ์ ์ธ ๋๋ ๋ง์ฐ์ค ์ฌ์ฉ์ด ๋ถ๊ฐํ ํ๊ฒฝ์์ ์ฌ์ฉ์ด ํธ๋ฆฌํ๊ฒ ์ ๊ทผ์ฑ์ ์ํด ์ฐ์ธ๋ค.
์ฝํ
์ธ ๊ฐ ๋ง์ ๊ฒฝ์ฐ tab ํค๋ฅผ ์์์ด ๋๋ฅด๋ ํ์ ๋์ ์ํ๋ ์์ญ์ผ๋ก ๋ฐ๋ก ์ ๊ทผํ ์ ์๋ ๋ฉ๋ด ๋ฐ๋ก๊ฐ๊ธฐ ๊ธฐ๋ฅ์ด๋ผ๊ณ ํ ์ ์๋ค.
- bodyํ๊ทธ ๋งจ ์ฒ์์ผ๋ก ์์นํด์ผํ๋ค.
- tab์ด์ฉ์ ์คํต ๋ค๋น๊ฒ์ด์ ์ด ๋ ธ์ถ๋๊ฒ ํด์ผํ๋ค.
- ์ฒ์์ ํ๋ฒ๋ง ์ฌ์ฉํด์ผํ๋ค.
-> ๊ณผ๋ํ๊ฒ ์ฌ์ฉ์ ๊ตฌ์กฐ์ ํ์ด์ง ์ด์ฉ์ ๋ณต์กํ๊ฒ ํ ๋ฟ์ด๋ค!- ์คํต ๋ค๋น๊ฒ์ด์ ์ ๋น์ฅ์ ์ธ ์ฌ์ฉ์๋ค์ ์ํด ํ๋ฉด์์ ๋ณด์ด์ง ์๊ฒ ์์ ํด์ผํ๋ค.

โจ ๊ฐ์ฅ ๋งจ์์ ์์นํด์ผํจ!

<figure> <!-- ๋ ๋ฆฝ์ ์ธ ์ด๋ฏธ์ง์ปจํ ์ธ (์๋ฉํฑํ๊ทธ) figure--> <img src="./asset/image/bg/SSTORY_20220512163330_22137.jpg" alt="๊ด๊ณ ์ด๋ฏธ์ง"><!-- ์ํธํ์ --> <figcaption class="blind"> ๋๋ ์์ธ์์ ๋ ผ๋ค. ์์ธ๋ก ๋ ๋๋ ์บ ํ <!-- ์ํธ์ ๋ค์ด๊ฐ ๋ด์ฉ ์ฐ๋ฉด๋จ ์๋ณด์ฌ์ฃผ๊ฒ ํด์ผํจ, ํ ์คํธ ์ ๊ณต์ ํ์์--> </figcaption> </figure>
๋ ๋ฆฝ์ ์ธ ์ด๋ฏธ์ง์ปจํ ์ธ (์๋ฉํฑํ๊ทธ) ์๋ ์ค๋ช ์ด ํ์ํ๋ค
alt์ ์ค๋ช ๊ธ์ ์ฐ๊ธฐ์ ๋๋ฌด ๊ธธ์์๋ figure
figure๋ก ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ธ์ฃผ๊ณfigcaption์blind์ฒ๋ฆฌํด์ฃผ๊ณ ์ด๋ฏธ์ง์ ์๋ ๋ชจ๋ ๋ด์ฉ ์จ์ค๋ค


<div class="chk-wrap"> <input type="checkbox" name="" id="ck"> <label for="ck">์ค๋ ํ๋ฃจ ๋ณด์ง ์๊ธฐ </label> <button class="btn-close"><span class="blind">๋ซ๊ธฐ</span></button> </div>
โผ button์ ๋ฐ์ดํฐ ๋ฐ์์ฌ๋ ์ฌ์ฉํ์
aํ๊ทธ๋ ๊ฐ๋ฅํ๊ธดํจ, ์คํฌ๋ฆฝํธ์์๊ฐ ๊ฐํ๋ฉด button์ด ์ข์select์์ input์ ๋ค์ด๊ฐ๋ฉด ์๋ผโbackground๋ฅผ ์ฐ๊ฑฐ๋ after๋ก ๋ฐ์ค๋ฅผ ๋ง๋ค์ด์ค, ์ ์ด์ฟผ๋ฆฌ๋ก active์ฃผ๋ฉด ๋~๐ก๐ค ์??
๋ฐ์ค๊ฐ ์ฒดํฌ๋ ๋ ์์ด๋ผ๋์ง ์ฒดํฌ๋๋ ์ด๋ฏธ์ง๋ผ๋์ง ํ์ด์ง๋ง๋ค ๋ค ๋ค๋ฅด๊ธฐ๋๋ฌธ์

<div class="select-area"> <select name="" id="selectLang"> <!-- ์คํฌ๋ฆฝํธ ์ธ์ดํฉ๋ง๋ค์ด์ ๋์ด๊ฐ๊ฒ๋จ --> <option value="http://english.seoul.go.kr/?SSid=101_01">ENGLISH</option> <option value="http://japanese.seoul.go.kr/?SSid=101_02">ๆฅๆฌ่ช</option> <option value="http://chinese.seoul.go.kr/?SSid=101_04">็ฎไฝไธญๆ</option> <option value="http://tchinese.seoul.go.kr/?SSid=101_03">็นไฝไธญๆ</option> <option value="http://world.seoul.go.kr/">WorldWide</option> </select> <button type="button" class="select-btn" id="btnLang" value="GO">GO</button> </div>$('#btnLang').click(function () { link = $('#selectLang').val() // console.log(link); window.open(link); })
option value ๊ฐ์ ๊ฐ ์ธ์ด ์ฌ์ดํธ ์ฃผ์๋ฅผ ๋ฃ๊ธฐ<button class="btn-keybored" aria-label="๊ฐ์ํค๋ณด๋ ์ด๊ธฐ"></button> <button type="button" class="btn-search" aria-label="๊ฒ์"></button>
role์ ํ๊ทธ์ ์ญํ์ ์๋ ค์ฃผ๋๊ฒ
aria-label์ ํ๊ทธ์ ์๋ฏธ๋ฅผ ์ ์ด์ฃผ๋ ์ด๋ฆํ!
์ฃผ์!!
์๋ฉํฑ ํ๊ทธ๋ ์์ฒด์ ์ผ๋ก ์๋ฏธ๊ฐ ์์ผ๋๊น role ๋ถ์ด์ง ๋ง๊ธฐ
<div role="button" aria-label="ํผ์น๊ธฐ"><i class="icon-arrow"></i></div> โ <button aria-label="ํผ์น๊ธฐ"><i class="icon-arrow"></i></button> โญ

์ด๋ ๊ฒ ๋๊ฐ๊ฐ ๊ฒน์ณ์ ธ ์๋ ํด๋ฆญ์ด๋ฒคํธ๋ ์ผ๋ช ๐โํ์ผ์ฒ ์ฝ๋ฉโ์ ํ๋ฉด ์ข๋ค
โ ๊ฐ์ ๋ด์ฉ์ด ๋ฒํผ์ ๋๋ ์๋ ํ์ ๊ทธ๋๋ก ๋ด์ฉ๋ง ๋ฐ๋๋๊น
โ ์ฌ๋ผ์ด๋๋ ๋ค ๋ ์์ด์ผํ๋ค (absolute)
autoplay๋ฅผ ์ฌ์ฉํ๋ค.autoplay: { delay : 2500, speed : 500, disableOnInteraction: false, }
์ด์ ์ ์ซ์์ ๋ฒํผ๊น์ง ํ๋ํ๋ ์์ฑํ์ง๋ง ์ค์์ดํผ ์ ์ฉ ํ ์ฝ๋๊ฐ ๊ฐ๋จํด์ง
-before-
<div class="contral-area"> <div class="number"> <span class="curr">2</span>/ <span class="total">5</span> </div> <a href="" class="prev btn"><span class="blind">์ด์ </span></a> <div class="btn-play"> <a href="" class="start"><span class="blind">์ฌ์</span></a> <a href="" class="pause active"><span class="blind">์ ์ง</span></a> </div> <a href="" class="next btn"><span class="blind">๋ค์</span></a> </div>
-after-
์ฝ๋๋ฅผ ์ ๋ ฅํ์ธ์
๐ฌ ํ์ฑํ ๋ ์ฌ๋ผ์ด๋๊ฐ ํ๋ฉด์ ๋ณด์ฌ์ง ๋, ํ์ฑํ๊ฐ ๋์ง ์์ ์ฌ๋ผ์ด๋์ ์๋์ฌ์์ด ๋ฉ์ถฐ์ผ ํ๊ธฐ ๋๋ฌธ์ ์กฐ๊ฑด๋ฌธ์ ๊ฑธ์ด์ค๋ค.
$('.sc-slide .slide-title').click(function (e) {
e.preventDefault();
$(this).parent('.slide-content').addClass('active').siblings('.slide-content').removeClass('active');
//ํญ์ ํด๋ฆญํ ๋ ํด๋์ค'active'๋ฅผ ์ถ๊ฐํ๊ณ ํ์ ์์์ ๋ค์ด์๋ ํด๋์ค'active'๋ฅผ ๋บ๋ค.
if ($(this).parent().hasClass('slide1')) {
slide2.autoplay.stop();//์๋ก๋ฐ๋๋๋๊ฑด ์ ์ง
if ($(this).parent().find('.pause').hasClass('active')) { //ํ์ฌ pause์ active๊ฐ ๋ค์ด๊ฐ์๋
slide1.autoplay.start();
} else {
slide1.autoplay.stop();
}
} else {
slide1.autoplay.stop();//์๋ก๋ฐ๋๋๋๊ฑด ์ ์ง
if ($(this).parent().find('.pause').hasClass('active')) {
slide2.autoplay.start(); //์์ํ ๋ ์๋์ผ๋ก ์คํํธ
} else {
slide2.autoplay.stop();
}
}
})
// ์ฒซ๋ฒ์งธ ์ฌ๋ผ์ด๋ ์ปจํธ๋กค $('.slide-content').hover(function(){ if(!$(this).find('.start').hasClass('active')){ /* !๊ฐ ๋ค์ด๊ฐ์ ๋ถ์ ๋ฌธ active๊ฐ ์๋ค๋ฉด ๋ฉ์ถฐ๋ผ */ slide1.autoplay.stop(); } },function(){ if(!$(this).find('.start').hasClass('active')){ slide1.autoplay.start(); } })
๐ ํด์
.slide-content์ ํธ๋ฒํ์๋ .start ํด๋์ค๋ฅผ ์ฐพ์์ active๊ฐ ์๋์ง ํ์ธํด๋ผ.
active๊ฐ ์๋ค๋ฉด ๋ฉ์ถฐ๋ผ
๐ก ์ ์ด์ฟผ๋ฆฌ์์ ! ๋ ๋ถ์ ๋ฌธ์ด๋ค!!
hasClass์์ฒด๊ฐtruefalse๋ฅผ ๊ฐ๋์ ๋ค.

.sc-new .new-item .img-box:hover img{ transform: scale(1.2); } .new-list .img-box img{ transition: all 0.3s; }
transition ์๋๋ฅผ ์ค์ผํ๋ค.
ํค๋ณด๋ ์ด๋ฒคํธ ๊ฐ์ฒด์๋ ๋๋ฆฌ๊ฑฐ๋ ๋์์ง ํค์ ๋ค์ํ ๋ฉํ์ ๋ณด๋ค ๋ด๊ฒจ ์๋ค.
keydown ์ด๋ฒคํธ๋ ์ฌ๋ฌ๊ฐ์ง ํค๋ณด๋ ์ด๋ฒคํธ ์ค ํ๋๋ก, ์ฌ์ฉ์๊ฐ ํค๋ฅผ ๋๋ฅผ ๋ ๋ฐ์ํ๋ ์ด๋ฒคํธ์ ๋๋ค.
โผ keyup -ํค๋ณด๋์์ ์์ ๋ ์ ๋ ์คํ -> ์ฃผ๋ก ์ค์๊ฐ ๊ฒ์ ์ ์ฌ์ฉ
โผ keydown - ํค๋ณด๋๋ฅผ ๋๋ ์ ๋ ์คํ + ํค๋ณด๋๋ฅผ ๋๋ฅด๊ณ ์์ ๋ ํ๋ฒ๋ง ์คํ๋จ
โผ keypress - ํค๋ณด๋๋ฅผ ๋๋ ์ ๋ ์คํ + ํค๋ณด๋๋ฅผ ๋๋ฅด๊ณ ์์ ๋ ๊ณ์ ์คํ๋จ
$('.sc-tab ul').stop().slideUp(); //๋ชจ๋ ๋ซ๋๊ฑฐ $(this).siblings('ul').stop().slideToggle();
$('.sc-tab .tab-title').click(function(){ //ํญ๋ฒํผ์ ๋๋ฅผ๊ฒฝ์ฐ if ($(this).hasClass('active')) { //ํญ๋ฒํผ์ด ์ด๋ฏธ ์กํฐ๋ธ, ์ฆ ์ด๋ ค์์๋๋ $(this).removeClass('active'); //ํญ๋ฐฐ๊ฒฝ์ ์ง์ด๋ค $(this).siblings('ul').slideUp(); //์ฌ๋ผ์ด๋๋ ๋ซ๋๋ค } else { //ํญ๋ฒํผ์ ์กํฐ๋ธ๊ฐ ์๋ค, ์ฆ ์์ด๋ ค ์์๊ฒฝ์ฐ๋ $('.sc-tab .tab-title').removeClass('active'); //๋ชจ๋ ํญ๋ฐฐ๊ฒฝ์ ์ง์ด๋ค(๋ค๋ฅธ ํญ๋ฒํผ์ด ์ด๋ฏธ ๋ฐฐ๊ฒฝ์ด ์์์ ์์ผ๋๊น) $(this).addClass('active'); //๋๋ฅธ ํญ๋ง ๋ฐฐ๊ฒฝ์ ์ถ๊ฐํ๋ค $('.sc-tab ul').slideUp(); //๋ชจ๋ ์ฌ๋ผ์ด๋๋ฅผ ๋ซ๋๋ค(๋ค๋ฅธ ํญ๋ฒํผ์ด ์กํฐ๋ธ๊ฐ ๋์ ์ฌ๋ผ์ด๋๊ฐ ์ด๋ ค์์์ ์์ผ๋๊น) $(this).siblings('ul').slideDown(); //๋๋ฅธ ํญ๋ฒํผ์ ์ฌ๋ผ์ด๋๋ ๋ค์ด } });
- ํด๋ฆญ์ด๋ฒคํธ, this๋ฅผ ํด๋ฆญํ์๋ ๋ฐฐ๊ฒฝ์์ ๋ฃ๊ณ ํด๋ฆญ ๋์ด์๋ ๋ค๋ฅธ ์ฌ๋ผ์ด๋๊ฐ ๋ซํ๊ณ ๋ฐฐ๊ฒฝ์์ ์์ค๋ค.
$('.tab-area li:first-child a').keydown(function(e){ var v_keyCode = e.keyCode || e.which; if(v_keyCode == 9 && e.shiftKey){ $('.sc-tab ul').stop().slideUp(); } }) $('.tab-area li:last-child a').keydown(function(e){ var v_keyCode = e.keyCode || e.which; if(v_keyCode == 9 && !e.shiftKey){ $('.sc-tab ul').stop().slideUp(); } })
- ๋๋ฅธ ํค๋ณด๋์ ํค์ ์ ๋์ฝ๋ ๊ฐ์ ๋ณ์ keyCode์ ๋ฃ์ด์ฃผ๊ณ ,
tab์ ์ ๋์ฝ๋ ๊ฐ์ด 9์ด๋ฏ๋ก ๋ง์ง๋ง ์์์์ keyCode == 9์ธ ๋์์ shift ๋๋ ๋์ง์ ์ ๋ฌด๋ ๊ณ ๋ คํ์ฌ e.shiftKey๊น์ง ์กฐ๊ฑด์ ๊ฑธ์ด์ .slideUp()์ ๊ฑธ์ด์ค๋๋ค.

$('.btn-top').click(function(e){ e.preventDefault(); $('html, body').animate({ scrollTop: 0 }, 300); })




box-sizing: border-box;๋ฅผ ๊ฑธ์ด์ฃผ์ง ์์์...
background-position: -256px -285px์ ์ค๋ ํฝ์
์ฌ์ด์ ,(์ปด๋ง) ๋ฃ์ด์ค์ใ

<div class="search-area">
<!-- ํผํ๊ทธ๋ ์ ์กํ ๋๋ง, -->
<fieldset>
<legend class="blind">๊ฒ์</legend>
<input type="text" placeholder="๊ฒ์์ด๋ฅผ ์
๋ ฅํด ์ฃผ์ธ์" class="input-search">
<button class="btn-keybored"><span class="blind">๊ฐ์ํค๋ณด๋</span></button>
<!-- ์ด๋ฏธ์ง๋ณด๋ค ๋ฒํผ์ผ๋ก ์ฃผ๋๊ฒ ์ข์ -->
<button type="button" class="btn-search">
<span class="blind">๊ฒ์</span>
</button>
</fieldset>
</div>
inner0,1,2๋ฑ์ผ๋ก ์น์ ์์ ์๋ฏธ๊ฐ ์๋์ ๋ก ๋ฌถ์ด์ฃผ๋ฉด์ ํ๋๊ฒ ์ข๋ค.

<li class="new-item"> <h3 class="item-title item-title02">ํ๊ฒฝ</h3> <a href=""> <div class="img-box"> <img src="./asset/image/content/new02.jpg" alt=""> </div> <p class="new-con">์์ธ์๋ฌผ์, ์์ฌ์ค๊ณ ๊ณต๋ชจ์ ์ 5์ 25์ผ๋ถํฐ ๋ง๋๋ณด์ธ์</p> </a> </li>


tabํค๋ฅผ ์ด์ฉํ์ฌ ๋์์ ์๋ก์ด ์์ญ์ผ๋ก ๋์ด๊ฐ์๋ active๊ฐ ์ฌ๋ผ์ง์ง ์๋๋ค
โ ํด๊ฒฐ๋ฐฉ์

slideUpํ ๋ ํจ๊ณผ๋ฅผ ์ค active๋ฅผ ์ ๊ฑฐ ํด์ฃผ๋ฉด ๋๋ค.