๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ปSTUDY/jQuery

[jQuery] :visible ์กฐ๊ฑด

๋ฐ˜์‘ํ˜•

[jQuery] :visible ์กฐ๊ฑด

Q. $('.box').is(':visible') ์‹คํ–‰๋˜์ง€ ์•Š์„๊นŒ?

๋จผ์ € ์ฝ”๋“œ๋ฅผ ๋ณด์ž.

<button type="button">click</button>
<div class="box"></div>
.box {
  display: block;
  width: 200px; height: 200px;
  background-color: green;
  /* ์ˆจ๊ฒจ์ค€๋‹ค. */
  opacity: 0;
  visibility: visible;
}
$('button').on('click', function() {
  if(!$('.box').is(':visible')) {
    // box visible.
    $('.box').css({opacity: 1, visibility: 'visible'});
  } else {
    // box hidden.
    $('.box').css({opacity: 0, visibility: 'hidden'});
  }
});

์œ„์˜ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•ด๋ณด๋ฉด ์‹คํ–‰๋˜์ง€ ์•Š๋Š”๋‹ค.

  1. jQuery visible๋ฅผ ๋ณด์ž.

    jQuery(':visible') :: ๋ณด์ด๋Š” ๋ชจ๋“  ์š”์†Œ๋ฅผ ์„ ํƒํ•œ๋‹ค.

    ๋ณด์ด๋Š” ์š”์†Œ๋Š” ๋„ˆ๋น„๋˜๋Š” ๋†’์ด๊ฐ€ 0๋ณด๋‹ค ํฌ๋‹ค.

    ๋ฐ˜๋Œ€ ๊ฐœ๋…์ธ :hidden์€ ๊ณต๊ฐ„ ์†Œ๋น„๊ฐ€ ์—†์œผ๋ฉฐ ํ‘œ์‹œ๊ฐ€ ๋˜์ง€ ์•Š๋Š”๋‹ค.

    display: none์€ ์„ฑ๋ฆฝ.

    ์ฆ‰, visibility: hidden / opacity: 0์€ ๊ณต๊ฐ„์„ ์ฐจ์ง€ํ•œ๋‹ค.

     

    visibility=hidden , opacity: 0 ์€ display: none๊ณผ ๋‹ค๋ฅด๋‹ค.

    • visibility: hidden / opacity: 0

      • ํƒœ๊ทธ๋Š” ๋ณด์ด์ง€ ์•Š์ง€๋งŒ, ํ•˜๋‚˜์˜ ๊ณต๊ฐ„์„ ์ฐจ์ง€ํ•˜๊ณ  ์žˆ๋‹ค
    • display: none

      • ํ•ด๋‹น ํƒœ๊ทธ๊ฐ€ ํŽ˜์ด์ง€์— ์ „ํ˜€ ํ‘œ์‹œ๋˜์ง€ ์•Š๋Š”๋‹ค

์ด์ „๊ธ€ ๋ณด๊ธฐ 2020/03/31 - [๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ปSTUDY/CSS] - [CSS] opacity / visibility / display ์ฐจ์ด์ 

 

  1. ์š”์†Œ๊ฐ€ ๋ฌธ์„œ์—์„œ ๊ณต๊ฐ„์„ ์†Œ๋น„ํ•˜๋ฉด ํ‘œ์‹œ๋˜๋Š” ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผํ•œ๋‹ค.
  2. is(':visible') ๋ฅผ ๋ณด์ž.

    visible === true :: ๊ณต๊ฐ„์„ ์ฐจ์ง€.

    visible === false :: ๊ณต๊ฐ„์„ ์ฐจ์ง€ํ•˜์ง€ ์•Š์Œ.

    => false์กฐ๊ฑด ๋งŒ์กฑํ•ด์•ผ ํ•˜๋Š”๋ฐ ๊ณต๊ฐ„์ด ์žˆ๋Š” visibility: hidden / opacity: 0์€ ์กฐ๊ฑด์„ฑ๋ฆฝ์ด ๋˜์ง€ ๋ชปํ•œ๋‹ค.

 

[โ–ผ์˜ˆ์ œ :: display: none / visibility: hidden / opacity: 0]

 

1๊ณผ 2๋Š” pointed out๋˜์—ˆ๋‹ค. (anchor focus๊ฐ€ ์žกํžˆ์ง€ ์•Š์Œ.) ํ•˜์ง€๋งŒ 2๋Š” ์—ฌ์ „ํžˆ ๊ณต๊ฐ„์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

3์€ ๊ณต๊ฐ„๋„ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ  click๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

ํ•ด๊ฒฐ๋ฐฉ๋ฒ•

  1. css ์†์„ฑ์„ ๊ฐ€์ ธ์™€์„œ ์“ด๋‹ค.
.box {
  width: 200px; height: 200px;
  opacity: 0;
  visibility: hidden;
}
if($('.box').css('visibility') === 'visible') {
  $('.box').animate({opacity: 1}, 500).css({visibility: 'visible'});
} else {
  $('.box').animate({opacity: 0}, 500).css({visibility: 'hidden'});
  // opacity๊ฐ€ animate ๋˜์ง€ ์•Š๊ณ  ๋ฐ”๋กœ hidden ๋œ๋‹ค.
  // fadeIn(), fadeOut() ์ด๋ฒคํŠธ์ฒ˜๋Ÿผ ๋ฐœ์ƒ๋˜์ง€ ์•Š๋Š”๋‹ค.
}
  • fadeIn() / fadeOut() ์ด๋ฒคํŠธ์ฒ˜๋Ÿผ ํ•ด์ฃผ๋ ค๋ฉด,
.box {
  width: 200px; height: 200px; background-color: green;
  opacity: 0; visibility: hidden;
  transition-property: opacity, visibility;
  transition-duration: 0.5s, 0s;
  transition-delay: 0s, 0.5s;
}
.box.on {
  opacity: 1; visibility: visible;
  transition-property: visibility, opacity;
  transition-duration: 0s, 0.5s;
}
if($('.box').css('visibility') === 'visible') {
  $('.box').removeClass('on');
} else {
  $('.box').addClass('on');
}

 

 

  1. ์š”์†Œ์— inline / inline-block / block ์„ ๋งŒ๋“ค์–ด์ค€๋‹ค.
.box {
  display: none;
  width: 200px; height: 200px;
  background-color: green;
}
if(!$('.box').is(':visible')) {
  $('.box').css({display: 'block'});
  // $('.box').show();
  // $('.box').fadeIn();
} else {
  $('.box').css({display: 'none'});
  // $('.box').hide();
  // $('.box').fadeOut();
}

 


 

์ถœ์ฒ˜

jQuery .is(":visible") not working in Chrome

jQuery:visible Selector

jQuery is(:visible) for visibility: hidden

what is the difference between visibility: hidden and display: none?

transitions on the CSS display property

๋ฐ˜์‘ํ˜•