whatisthis?

practice - css / jquery ) j์ฟผ๋ฆฌ๋กœ ์•„์ฝ”๋””์–ธ๋ฉ”๋‰ด ๋งŒ๋“ค๊ธฐ + ์ถ”๊ฐ€ ๋ณธ๋ฌธ

PRACTICE/SELF

practice - css / jquery ) j์ฟผ๋ฆฌ๋กœ ์•„์ฝ”๋””์–ธ๋ฉ”๋‰ด ๋งŒ๋“ค๊ธฐ + ์ถ”๊ฐ€

thisisyjin 2022. 3. 10. 15:43

๐Ÿ”ป j-Query ์—†์ด ๋งŒ๋“  ์•„์ฝ”๋””์–ธ ๋ฉ”๋‰ด

 

practice - css / js ) j์ฟผ๋ฆฌ ์—†์ด ์•„์ฝ”๋””์–ธ๋ฉ”๋‰ด ๋งŒ๋“ค๊ธฐ

Accordion Menu (without jQuery) - ๋ณดํ†ต ์•„์ฝ”๋””์–ธ ๋ฉ”๋‰ด๋Š” j์ฟผ๋ฆฌ๋ฅผ ์ด์šฉํ•˜๋Š”๋ฐ, j์ฟผ๋ฆฌ์—๋Š” slideToogle ๋“ฑ์˜ ํŽธ๋ฆฌํ•œ ์• ๋‹ˆ๋ฉ”์ด์…˜ ๊ด€๋ จ ๋ฉ”์†Œ๋“œ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ! BUT! ๋‚˜๋Š” ์ œ์ด์ฟผ๋ฆฌ๋Š” ๋˜๋„๋ก ์“ฐ์ง€ ์•Š๊ณ  ์‹ถ์€ 1ไบบ ์œผ๋กœ

mywebproject.tistory.com

Accordion Menu

with jQuery

 

.slideUp() ์„ ํƒํ•œ ์š”์†Œ์˜ CSS height ์†์„ฑ๊ฐ’์„ ๋†’์—ฌ๊ฐ€๋ฉฐ ์‚ฌ๋ผ์ง€๊ฒŒ ํ•œ๋‹ค. (์˜ฌ๋ผ๊ฐ€๋ฉด์„œ ์‚ฌ๋ผ์ง)
.slideDown() ์„ ํƒํ•œ ์š”์†Œ์˜ CSS height ์†์„ฑ๊ฐ’์„ ๋‚ฎ์ถฐ๊ฐ€๋ฉฐ ๋‚˜ํƒ€๋‚˜๊ฒŒ ํ•œ๋‹ค. (๋‚ด๋ ค๊ฐ€๋ฉด์„œ ์‚ฌ๋ผ์ง)
.slideToggle() ์„ ํƒํ•œ ์š”์†Œ์— .slideUp() ๋ฉ”์†Œ๋“œ์™€ .slideDown() ๋ฉ”์†Œ๋“œ๋ฅผ ๋ฒˆ๊ฐˆ์•„๊ฐ€๋ฉฐ ์ ์šฉํ•œ๋‹ค.

 

 

 

๋ฐฉ๋ฒ• 1 / slideDown๊ณผ slideUp ์ด์šฉ

 

 

$(document).ready(function () {
  $(".title").click(function () {
    if ($(this).hasClass("active")) {
      slideUp();
    } else {
      slideUp();
      $(this).addClass("active").next().slideDown();
    }
    function slideUp() {
      $(".title").removeClass("active").next().slideUp();
    }
  });
});

active ์ƒํƒœ๋ฉด? - ์ด๋ฏธ ์—ด๋ฆฐ ์ƒํƒœ์ž„. slideup์œผ๋กœ ์œ„๋กœ ์‚ฌ๋ผ์ง€๊ฒŒํ•จ.  

activeํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด - ์ด์ œ ์—ด์–ด์•ผํ•จ. class์ถ”๊ฐ€ํ•˜๊ณ , next(),์ฆ‰ text๋ถ€๋ถ„์„ slideDown์œผ๋กœ ์•„๋ž˜๋กœ ํŽผ์ณ์ง€๊ฒŒํ•จ.

 

 

 

result

 

 

 

๋ฐฉ๋ฒ• 2 / slideToggle

 

slideToggle ๋ฉ”์†Œ๋“œ๋Š”

์„ ํƒํ•œ ์š”์†Œ๊ฐ€ ํ˜„์žฌ ์‚ฌ๋ผ์ง„ ์ƒํƒœ๋ผ๋ฉด .slideDown() ๋ฉ”์†Œ๋“œ์˜ ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•˜๊ณ ,

๋‚˜ํƒ€๋‚˜ ์žˆ๋Š” ์ƒํƒœ๋ผ๋ฉด .slideUp() ๋ฉ”์†Œ๋“œ์˜ ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

 

 

$(document).ready(function () {
  $(".title").click(function () {
    $(".text").not($(this).next(".text").slideToggle(300)).slideUp();
  });
});

 

.not ๋ฉ”์„œ๋“œ๋Š” .text์ค‘์—์„œ ์ง€๊ธˆ ๋ˆ„๋ฅธ ๊ฒƒ = ($(this)) ์˜ ๋‹ค์Œ(.next) .text๋Š” slideToggleํ•˜๊ณ ,

์•„๋‹Œ๊ฒƒ์€ slideUpํ•ด์„œ ์ ‘์–ด๋ฒ„๋ฆผ.

 

 

 

 

๋ฐฉ๋ฒ• 3 / ์‚ผํ•ญ์—ฐ์‚ฐ์ž

 

$(document).ready(function () {
  $(".title").click(function () {
    function slideDown(target) {
      slideUp();
      $(target).addClass("active").next().slideDown();
    }
    function slideUp() {
      $(".title").removeClass("active").next().slideUp();
    }
    $(this).hasClass("active") ? slideUp() : slideDown($(this));
  });
});

slideDown ํ•จ์ˆ˜์™€ slideUpํ•จ์ˆ˜ ์„ ์–ธ.

>> slidedown์‹œ ๋‹ค slideupํ•œ ํ›„์—,

active๋ผ๋Š” ํด๋ž™์Šค ์ฃผ๊ณ , ๋‹ค์Œ์š”์†Œ(=.text)๋ฅผ slidedownํ•˜๊ธฐ.

 

slideup์‹œ activeํด๋ž˜์Šค๋ฅผ ์—†์• ๊ณ , ํ•ด๋‹น์š”์†Œ ๋‹ค์Œ์š”์†Œ(=.text)๋ฅผ slideup

 

 

 

๊ฒฐ๊ตญ ์„ธ ๋ฐฉ์‹ ๋ชจ๋‘ ์›๋ฆฌ๋Š” ๊ฐ™์Œ.

(ํด๋ฆญํ•œ๊ฑฐ, ์ฆ‰ $this์˜ .text๋ถ€๋ถ„(=next)์„ slideToggle์ด๋“  down์ด๋“  ํ•˜๊ณ ,

๋‚˜๋จธ์ง€ h2์˜ .text๋ถ€๋ถ„์€ ๋‹ค slideUpํ•˜๊ธฐ.)