[๐Ÿ’ป] ์‹ค์Šต - ์„œ์šธ์‹œ์ฒญ

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

web-project

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

NEW ๋ฆฌ๋‰ด์–ผ!!

๐Ÿ“– Overview

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

๐Ÿ‘€ Check-point

  • swiper๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์Šฌ๋ผ์ด๋“œ ๊ตฌํ˜„ ๊ฐ€๋Šฅํ•œ๊ฐ€
  • ํ‚ค๋ณด๋“œ ์ด๋ฒคํŠธ keydown ๋‹ซ๋Š” ๊ธฐ๋Šฅ
  • (new) ์Šคํ‚ต๋„ค๋น„๊ฒŒ์ด์…˜ ๊ตฌ์‚ฌ
  • (new) value๋กœ ์‚ฌ์ดํŠธ ์ด๋™
  • (new) ํƒญ์œผ๋กœ ์ปจํ…์ธ ๋“ค ์ด๋™

๊ด€๊ณต์„œ๋Š” ๋งˆํฌ์—…์ด ํŠนํžˆ ์ค‘์š”ํ•˜๋‹ค

์›น์ ‘๊ทผ์„ฑ ํ’ˆ์งˆ๋งˆํฌ - ์žฅ์• ์ธ ๋ฐ ๊ณ ๋ น์ž๊ฐ€ ์›น ์‚ฌ์ดํŠธ ์ด์šฉ์— ๋ถˆํŽธ์ด ์—†๋„๋ก ์›น ์ ‘๊ทผ์„ฑ ํ‘œ์ค€์ง€์นจ์„ ์ค€์ˆ˜ํ•œ ์šฐ์ˆ˜ ์‚ฌ์ดํŠธ์— ๋Œ€ํ•ด ์›น ์ ‘๊ทผ์„ฑ ์ˆ˜์ค€์„ ์ธ์ •ํ•˜๊ณ  ์ด๋ฅผ ์ƒ์ง•ํ•˜๋Š” ํ’ˆ์งˆ ๋งˆํฌ๋ฅผ ๋ถ€์—ฌํ•˜๋Š” ์ธ์ฆ์ œ๋„

๐Ÿ“Œ css layout์— ์—ฐ๊ฒฐํ• ๋•Œ ์ˆœ์„œ

/* ํฐํŠธ๋จผ์ €*/
@import url('https://fonts.googleapis.com/css2?family=Nanum+Gothic:wght@400;700&display=swap');

@import url(./reset.css);
@import url(./common.css);
  1. ํฐํŠธ์—ฐ๊ฒฐ
  2. reset.css ์—ฐ๊ฒฐ
  3. common.css ์—ฐ๊ฒฐ

--๋ฆฌ๋‰ด์–ผ๋กœ ์ธํ•ด ์—…๋ฐ์ดํŠธ--

๐Ÿ“Œ ์Šคํ‚ต ๋‚ด๋น„๊ฒŒ์ด์…˜

๐Ÿ‘‰ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

์‹œ๊ฐ ์žฅ์• ์ธ ๋˜๋Š” ๋งˆ์šฐ์Šค ์‚ฌ์šฉ์ด ๋ถˆ๊ฐ€ํ•œ ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉ์ด ํŽธ๋ฆฌํ•˜๊ฒŒ ์ ‘๊ทผ์„ฑ์„ ์œ„ํ•ด ์“ฐ์ธ๋‹ค.
์ฝ˜ํ…์ธ ๊ฐ€ ๋งŽ์„ ๊ฒฝ์šฐ tab ํ‚ค๋ฅผ ์ˆ˜์—†์ด ๋ˆ„๋ฅด๋Š” ํ–‰์œ„ ๋Œ€์‹  ์›ํ•˜๋Š” ์˜์—ญ์œผ๋กœ ๋ฐ”๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”๋‰ด ๋ฐ”๋กœ๊ฐ€๊ธฐ ๊ธฐ๋Šฅ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • bodyํƒœ๊ทธ ๋งจ ์ฒ˜์Œ์œผ๋กœ ์œ„์น˜ํ•ด์•ผํ•œ๋‹ค.
  • tab์ด์šฉ์‹œ ์Šคํ‚ต ๋„ค๋น„๊ฒŒ์ด์…˜์ด ๋…ธ์ถœ๋˜๊ฒŒ ํ•ด์•ผํ•œ๋‹ค.
  • ์ฒ˜์Œ์— ํ•œ๋ฒˆ๋งŒ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค.
    -> ๊ณผ๋„ํ•˜๊ฒŒ ์‚ฌ์šฉ์‹œ ๊ตฌ์กฐ์™€ ํŽ˜์ด์ง€ ์ด์šฉ์„ ๋ณต์žกํ•˜๊ฒŒ ํ•  ๋ฟ์ด๋‹ค!
  • ์Šคํ‚ต ๋„ค๋น„๊ฒŒ์ด์…˜์€ ๋น„์žฅ์• ์ธ ์‚ฌ์šฉ์ž๋“ค์„ ์œ„ํ•ด ํ™”๋ฉด์—์„œ ๋ณด์ด์ง€ ์•Š๊ฒŒ ์ž‘์—…ํ•ด์•ผํ•œ๋‹ค.

โœจ ๊ฐ€์žฅ ๋งจ์œ„์— ์œ„์น˜ํ•ด์•ผํ•จ!


๐Ÿ“Œ ์ด๋ฏธ์ง€ ์„ค๋ช… figure

<figure>
    <!-- ๋…๋ฆฝ์ ์ธ ์ด๋ฏธ์ง€์ปจํ…์ธ (์‹œ๋ฉ˜ํ‹ฑํƒœ๊ทธ)  figure-->
    <img src="./asset/image/bg/SSTORY_20220512163330_22137.jpg" alt="๊ด‘๊ณ ์ด๋ฏธ์ง€"><!-- ์•ŒํŠธํ•„์ˆ˜ -->
    <figcaption class="blind">
        ๋‚˜๋Š” ์„œ์šธ์—์„œ ๋…ผ๋‹ค. ์„œ์šธ๋กœ ๋– ๋‚˜๋Š” ์บ ํ•‘
        <!-- ์•ŒํŠธ์— ๋“ค์–ด๊ฐˆ ๋‚ด์šฉ ์“ฐ๋ฉด๋จ ์•ˆ๋ณด์—ฌ์ฃผ๊ฒŒ ํ•ด์•ผํ•จ, ํ…์ŠคํŠธ ์ œ๊ณต์€ ํ•„์ˆ˜์ž„-->
    </figcaption>
</figure>

๋…๋ฆฝ์ ์ธ ์ด๋ฏธ์ง€์ปจํ…์ธ (์‹œ๋ฉ˜ํ‹ฑํƒœ๊ทธ) ์—๋Š” ์„ค๋ช…์ด ํ•„์š”ํ•˜๋‹ค

alt์— ์„ค๋ช…๊ธ€์„ ์“ฐ๊ธฐ์— ๋„ˆ๋ฌด ๊ธธ์—ˆ์„๋•Œ figure

  • figure๋กœ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ์‹ธ์ฃผ๊ณ  figcaption์„ blind์ฒ˜๋ฆฌํ•ด์ฃผ๊ณ  ์ด๋ฏธ์ง€์— ์žˆ๋Š” ๋ชจ๋“  ๋‚ด์šฉ ์จ์ค€๋‹ค

๐Ÿ“Œ img์“ธ๋•Œ ์ฃผ์˜ํ•ด์•ผํ• ์ 

  • ํด๋ž˜์Šค๋ฅผ ์“ธ๋•Œ ico01,2โ€ฆ ์ด๋Ÿฐ ์ด๋ฆ„๋ณด๋‹ค ๊ฐ ์ด๋ฏธ์ง€๊ฐ€ ๋ณด์—ฌ์ง€๋Š” ์ด๋ฆ„์„ ์ฃผ๋Š”๊ฒŒ ์ข‹๋‹ค.
    ->ex) ic-service

๐Ÿ“Œ ์ฒดํฌ๋ฐ•์Šค ๊พธ๋ฏธ๊ธฐ

<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์ฃผ๋ฉด ๋~

๐Ÿ’ก๐Ÿค” ์™œ??

๋ฐ•์Šค๊ฐ€ ์ฒดํฌ๋ ๋•Œ ์ƒ‰์ด๋ผ๋˜์ง€ ์ฒดํฌ๋˜๋Š” ์ด๋ฏธ์ง€๋ผ๋˜์ง€ ํŽ˜์ด์ง€๋งˆ๋‹ค ๋‹ค ๋‹ค๋ฅด๊ธฐ๋•Œ๋ฌธ์—


๐Ÿ“Œ ์–ธ์–ด๋ฆฌ์ŠคํŠธ(value ์ด๋™)

<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);
    })
  • ํ•ด๋‹น์–ธ์–ด๋กœ ๋ฐ”๋€ ํŽ˜์ด์ง€๋“ค์€ ๊ฐœ๋ฐœ์ž๋“ค์ด ์Šคํฌ๋ฆฝํŠธ์—์„œ ์–ธ์–ดํŒฉ์„ ๋งŒ๋“ค์–ด์„œ ๋„˜๊ฒจ์ค€๋‹ค.
  • select์•ˆ option value ๊ฐ’์— ๊ฐ ์–ธ์–ด ์‚ฌ์ดํŠธ ์ฃผ์†Œ๋ฅผ ๋„ฃ๊ธฐ
  • click ์ด๋ฒคํŠธ๋กœ GO ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ ํ•ด๋‹น value ๊ฐ’์„ ๊ฐ€์ ธ์™€ ์ด๋™ํ•˜๊ฒŒ ํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ ์ž‘์„ฑ

๐Ÿ“Œ aria-label

๊ฒ€์ƒ‰์—”์ง„ ์ƒ ๋…ธ์ถœ์ด ์ค‘์š”ํ•˜์ง€ ์•Š์€ ๋ถ€๋ถ„!

<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)

  • ์ž๋™ ์Šฌ๋ผ์ด๋“œ๋Š” swiper์˜ 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 ์ž์ฒด๊ฐ€ true false๋ฅผ ๊ฐ–๋Š”์• ๋‹ค.


๐Ÿ“Œ hover์‹œ ์ด๋ฏธ์ง€ ์ปค์ง€๋Š” ์ด๋ฒคํŠธ

.sc-new .new-item .img-box:hover img{
    transform: scale(1.2);
}
.new-list .img-box img{
    transition: all 0.3s;
}
  • ์ด๋ฒคํŠธ ์ฃผ๋ ค๋Š” ์• (img)ํ•œํ…Œ transition ์†๋„๋ฅผ ์ค˜์•ผํ•œ๋‹ค.

๐Ÿ“Œ ์Šฌ๋ผ์ด๋“œ ํƒญ + keyCode

ํ‚ค๋ณด๋“œ ์ด๋ฒคํŠธ ๊ฐ์ฒด์—๋Š” ๋ˆŒ๋ฆฌ๊ฑฐ๋‚˜ ๋†“์•„์ง„ ํ‚ค์— ๋‹ค์–‘ํ•œ ๋ฉ”ํƒ€์ •๋ณด๋‹ค ๋‹ด๊ฒจ ์žˆ๋‹ค.

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๋ฅผ ํด๋ฆญํ–ˆ์„๋•Œ ๋ฐฐ๊ฒฝ์ƒ‰์„ ๋„ฃ๊ณ  ํด๋ฆญ ๋˜์–ด์žˆ๋Š” ๋‹ค๋ฅธ ์Šฌ๋ผ์ด๋“œ๊ฐ€ ๋‹ซํžˆ๊ณ  ๋ฐฐ๊ฒฝ์ƒ‰์„ ์—†์•ค๋‹ค.

  • ์Šฌ๋ผ์ด๋“œ๊ฐ€ ์—ด๋ ค์žˆ์„ ๋•Œ ์ฒซ/๋งˆ์ง€๋ง‰ ์š”์†Œ์—์„œ shift+tab/tab ๋ˆŒ๋ €์„ ๋•Œ ์Šฌ๋ผ์ด๋“œ ๋‹ซ๊ธฐ
$('.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()์„ ๊ฑธ์–ด์ค๋‹ˆ๋‹ค.

๐Ÿ“Œ ์œ„๋กœ๊ฐ€๊ธฐ ๋ฒ„ํŠผ ์ด๋ฒคํŠธ

  • ์˜ฌ๋ผ๊ฐ€๋Š” ๋ฒ„ํŠผ์€ margin-left์„ ์ด์šฉํ•œ๋‹ค ๋จผ์ € ์˜์—ญ์˜ ๋ฐ˜์„ ๊ณ„์‚ฐํ•ด์ค€๋‹ค. margin-left: 600px; / ์˜์—ญ์˜ ๋ฐ˜ 352์˜ ๋ฐ˜ /
$('.btn-top').click(function(e){
        e.preventDefault();
        $('html, body').animate({
            scrollTop: 0
        }, 300);
    })

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

  • h1 ์•ˆ์—๋Š” div ๊ธˆ์ง€
  • ๋ฒ„ํŠผ์ด๋‚˜ ๋งํฌ๋“ฑ๋“ฑ ์ด๋ฆ„ ์ง€์„๋•Œ btn-000 ,link-000๋กœ ์ง“์ž

  • ๋‚œ UI,Li๋กœ ๋งˆํฌ์—…ํ–ˆ์ง€๋งŒ 3๊ฐœ ์ดํ•˜๋“ค์€ ๋ณ„๋กœ ์ถ”์ฒœ์•ˆํ•จ div > a ๋กœ ๊พธ๋ฉฐ์ฃผ๋Š”๊ฒŒ ๋” ์ข‹์•˜์„๊บผ๊ฐ™๋‹ค

  • h1์€ ํŽ˜์ด์ง€๋‹น ํ•˜๋‚˜๋งŒ ๋‚˜์˜ฌ์ˆ˜ ์žˆ๋‹ค. ๊ทธ์น˜๋งŒ ๋กœ๊ณ ๊ฐ€ ๋‘๊ฐœ๊ฐ€ ๋‚˜์™”์„๋•Œ๋Š” ๋ฐ‘์—๋Š” h2๋กœ ์จ์ฃผ์ž

  • ์™œ ์ž๊พธ ํด๋ฆญํ–ˆ์„๋•Œ ์ƒˆ๋กœ๊ณ ์นจ์ด ๋˜๋Š”๊ฑธ๊นŒโ€ฆ
    โ†’์ œ์ด์ฟผ๋ฆฌ aํƒœ๊ทธ ์ƒˆ๋กœ๊ณ ์นจ ์ด๋ฒคํŠธ๋ฅผ ๊ฑธ์–ด์ฃผ์ง€ ์•Š์•˜๋‹คใ… 

  • aํƒœ๊ทธ์— block๊ณผ w100%,h100%๋ฅผ ์ฃผ๋ฉด ๋ฐ‘์—๊นŒ์ง€ ์นจ๋ฒ”ํ•˜๋Š” ํ˜„์ƒ๋ฐœ์ƒ
    -> 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>
  • ์ฒ˜์Œ์— ๊ฐ์ŒŒ๋˜ formํƒœ๊ทธ๋Š” ์ „์†กํ• ๋•Œ๋งŒ ์“ฐ๋Š”๊ฒƒ!
  • ํ‚ค๋ณด๋“œ๋ž‘ ๊ฒ€์ƒ‰์• ๋“ค์€ aํƒœ๊ทธ๋„ ๊ดœ์ฐฎ์ง€๋งŒ buttonํƒœ๊ทธ๋กœ ์ฃผ๋Š”๊ฒŒ ๋” ์ข‹๋‹ค!

โœ ๊ฐ์‹ธ๋Š” inner

inner0,1,2๋“ฑ์œผ๋กœ ์„น์…˜์•ˆ์— ์˜๋ฏธ๊ฐ€ ์—†๋Š”์• ๋กœ ๋ฌถ์–ด์ฃผ๋ฉด์„œ ํ•˜๋Š”๊ฒŒ ์ข‹๋‹ค.

โœ h3์‚ฌ์šฉ

<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>
  • h2๊นŒ์ง€๋งŒ ์‚ฌ์šฉํ•˜๊ณ  ์ž๊พธ h3๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. ์†Œ์ œ๋ชฉ,์ค‘์š”ํ•œ ๋ถ€๋ถ„ ์ƒ๊ฐํ•˜๊ณ  ์ฝ”๋”ฉํ•˜๊ธฐ

โœ removeClass


tabํ‚ค๋ฅผ ์ด์šฉํ•˜์—ฌ ๋์—์„œ ์ƒˆ๋กœ์šด ์˜์—ญ์œผ๋กœ ๋„˜์–ด๊ฐ”์„๋•Œ active๊ฐ€ ์‚ฌ๋ผ์ง€์ง€ ์•Š๋Š”๋‹ค

โœ ํ•ด๊ฒฐ๋ฐฉ์•ˆ

slideUpํ• ๋•Œ ํšจ๊ณผ๋ฅผ ์ค€ active๋ฅผ ์ œ๊ฑฐ ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

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

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