CSS๐Ÿ”ง/๋ฐ˜์‘ํ˜•

์•„์ดํฐ ๋ฐฐ๊ฒฝ fixed ์ด ๋ฐ˜์˜์•ˆ๋จ

hyojinny 2022. 11. 17. 14:25


pc์—์„  ์ž˜ ๋ณด์ด์ง€๋งŒ 

์•„์ดํฐ์—์„œ ๋ฐฐ๊ฒฝ์—์„  ๋ฐฐ๊ฒฝ fixed (์Šคํฌ๋กค ์›€์ง์˜€์„๋•Œ ๋ฐฐ๊ฒฝ์ด ๊ณ ์ •๋œ ์ƒํƒœ๋กœ ์›€์ง์ด๋Š” ) ๊ฐ€ ๋ฐ˜์˜์ด์•ˆ๋จ

์ด๋ฏธ์ง€๊ฐ€ ํ™•๋Œ€๋˜๊ณ  ๊นจ์ง

์•ˆ๋“œ๋กœ์ด๋“œ๋Š” ์ž˜ ๋ณด์ž„ 

 

  /* ์•„์ดํฐ์—์„  ๋ฐ˜์˜์•ˆ๋จ */
  /* background: url(../images/bg_main_vision.jpg) 50% 50% / cover fixed; */

๋‹ค๋ฅธ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฐ˜์˜ํ•˜๊ธฐ (์•„์ดํฐ๋Œ€์‘)

 

๋ฐฉ๋ฒ• 1 ๋ฐฐ๊ฒฝ์œผ๋กœ ๊น”์•„์ค€๋‹ค. 

 

 

๋‹ค๋ฅธ ์„น์…˜์— ๋ฐฐ๊ฒฝ์„ ์ผ์ผํžˆ ๊น”์•„์ฃผ๊ณ ,

ํ˜„์žฌ ์„น์…˜์„ ๋ฐฐ๊ฒฝ fixed ๊ฐ€ ์•„๋‹Œ

position ์œผ๋กœ ๋„์šฐ๊ณ  z-index๋กœ ๋งจ ๋ฐ‘์— ๊น”์•„์ค€๋‹ค. 

 

/* ์•„์ดํฐ์—์„œ ๋ฐฐ๊ฒฝ fixed ๋ง‰ํ˜€์žˆ์Œ */
.main_vision .bg_fixed {
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
  /* ์ฐฝ๊ธฐ์ค€์œผ๋กœ ์œ„์น˜ ์ƒ๊ด€์—†์ด ๋– ์˜ค๋ฆ„ */
  background: url(../images/bg_main_vision.jpg) no-repeat 50% 50% / cover;
}

 

 

๋ฌธ์ œ์  

pc ๋ฐ ์•ˆ๋“œ๋กœ์ด๋“œ์—์„  ์ž˜ ๋ฐ˜์˜๋˜์ง€๋งŒ 

์•„์ดํฐ ์Šคํฌ๋กค ํŠ•๊น€ ํ˜„์ƒ์œผ๋กœ ์Šคํฌ๋กค ์‹œ ๋ฐ‘์— ๋ฐฐ๊ฒฝ์ด ๋‹ค๋ฅธ์„น์…˜์—์„œ ๋ณด์ธ๋‹ค.

 

๋•Œ๋ฌธ์— ์ œ์ด์ฟผ๋ฆฌ ์Šคํฌ๋กค ์ด๋ฒคํŠธ๋กœ ์Šคํฌ๋กค์ด ๋˜๋ฉด ๋ฐฐ๊ฒฝ์ž์ฒด๋ฅผ  ์ˆจ์ผœ๋ฒ„๋ฆฐ๋‹ค.

 

์Šคํฌ๋กค ํƒ‘์œผ๋กœ ๊ฐ€๋ฆฌ๊ธฐ 
์Šคํฌ๋กค ํƒ‘์ด ์š”์†Œ์˜ ์œ„์น˜๋ณด๋‹ค ํฌ๋ฉด ๋งจ์œ„


<์Šคํฌ๋กคํ• ๋–„>
์š”์†Œ๊ฐ€ ํŽ˜์ด์ง€ ์ƒ๋‹จ๊นŒ์ง€ ์Šคํฌ๋กค
- scrollTop ์ด $('์š”์†Œ').offset().top ๋ณด๋‹ค ํด๋•Œ

<๋ฐ‘์—์„œ ์˜ฌ๋ผ์˜ค๋Š”์ƒํ™ฉ>
์ฐฝ๋†’์ด๋งŒํผ ๋œ ์Šคํฌ๋กค ํ–ˆ์„๋•Œ 
์š”์†Œ๊ฐ€ ์•„๋ž˜์—์„œ ํ™”๋ฉด์•ˆ์œผ๋กœ ๋“ค์–ด์˜ค๋Š” ๊ฒฝ์šฐ
- srollTop์ด $('์š”์†Œ').offset().top - $(window).outerHight() ๋ณด๋‹ค ํฌ๋ฉด

<๋ฌธ์„œ ์•„๋ž˜๊นŒ์ง€ ์Šคํฌ๋กค>
๊ฐ€์žฅ ๋ฐ”๋‹ฅ๊นŒ์ง€ 
- scrollTop์ด $(document).outerHeight() - $(window).outerHeight() ๋งŒํผ

์ฆ‰ ์Šคํฌ๋กค

 

$(function () {
  var winH = $(window).outerHeight();
  
  $(window)
  .on('scroll', function () {
  var st = $(this).scrollTop();
      
  // ๋ฐฐ๊ฒฝ๊ณ ์ •ํšจ๊ณผ
  if (st < 200 || st > $(document).outerHeight() - winH) {
  $('.main_vision .bg_fixed').addClass('hide');
  } else {
  $('.main_vision .bg_fixed').removeClass('hide');
  }
      
      
  })
  .trigger('scroll');

win ์€ ์œˆ๋„์šฐ์˜ ์ฐฝ ๋†’์ด์ด๋‹ค.

st ๋Š” ์Šคํฌ๋กค์˜ ์œ„์น˜์ด๋‹ค.

winH ๋Š” ์œˆ๋„์šฐ ์ฐฝ๋†’์ด ์ด๋‹ค.

 

๋งŒ์•ฝ ์Šคํฌ๋กค์˜ ์œ„์น˜๊ฐ€ 200 ๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜

๋˜๋Š” (||)  ์Šคํฌ๋กค์˜ ์œ„์น˜๊ฐ€ '๋ฐ”๋‹ฅ์—์„œ์˜ ์ฐฝ๋†’์ด '์ฐฝ๋†’์ด๋ฅผ ๋บ€ ๊ฐ’'๋ณด๋‹ค ํฌ๋ฉด

(๋‚ด๊ฐ€ ์ง€๊ธˆ ํ˜„์žฌ ๋ณด๊ณ ์žˆ๋Š” ํ™”๋ฉด์ด ์•„๋‹ˆ๋ฏ€๋กœ ๋‹ค๋ฅธ๊ณณ์—์„œ ๋‚˜์˜ค์ง€์•Š๊ฒŒ)

 

๋ฐฐ๊ฒฝ์ด๋ฏธ์ง€๋ฅผ ์ˆจ๊ธฐ๊ณ  

์•„๋‹ˆ๋ฉด ๋ณด์—ฌ๋ผ 

 


 $(document).outerHeight()
document ๋Š” html ๋ฌธ์„œ ์ „์ฒด์ด๋ฏ€๋กœ outerHeight์€ ๋ฌธ์„œ ์ „์ฒด์˜ ๋†’์ด 
 
 

 

 

 

 

$(window).outerHeight()
window์˜ ์ฐฝ๋†’์ด 
 
 
์ฆ‰ ๋งจ ์•„๋ž˜๊ฐ’์„ ๊ตฌํ• ๋•Œ
์Šคํฌ๋กค๋ฐ” ์ฐฝ ๋†’์ด๋ฅผ ์ œ์™ธํ•œ ๊ฐ’์œผ๋กœ ๊ตฌํ•ด์•ผํ•œ๋‹ค 
 

 

if (st < 200 || st > $(document).outerHeight() - winH - 200)
 
๊ฑฐ๊ธฐ์„œ 200๋งŒํผ ๋” ๋นผ์„œ ๋ฏธ๋ฆฌ ๋ฐฐ๊ฒฝ์„ ์ˆจ์ผœ์ค˜๋ผ