Material-ui: [๋Œ€ํ™”] ๋ถ€์ž‘์šฉ (๋ณธ์ฒด ์˜ค๋ฒ„ํ”Œ๋กœ ์ˆจ๊น€ ์†์„ฑ)

์— ๋งŒ๋“  2015๋…„ 06์›” 20์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: mui-org/material-ui

๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ณ€๊ฒฝ์„ ์ œ์•ˆํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

Dialog ๊ตฌ์„ฑ ์š”์†Œ๋Š” <body> ์Šคํƒ€์ผ์„ overflow: hidden; ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ทจ์†Œํ•˜๋ฉด์ด ์Šคํƒ€์ผ ๊ทœ์น™์ด ์ทจ์†Œ๋ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ Dialog๊ฐ€ ํ‘œ์‹œ๋˜๋Š” ๋™์•ˆ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ DOM์—์„œ ์ œ๊ฑฐ๋˜๋ฉด ์œ„์˜ ์Šคํƒ€์ผ๋กœ ์ธํ•ด ์ „์ฒด ๋ณธ๋ฌธ์„ ์Šคํฌ๋กค ํ•  ์ˆ˜ ์—†๊ฒŒ๋ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ๊ณผ ๊ฐ™์ด componentWillUnmount ๋ฅผ ์ œ์•ˆํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

  componentWillUnmount: function() {
    // dialog has a side-effect if this not checked
    document.body.style.overflow = 'auto';
  }

๋˜๋Š” ๋” ๋…๋ฆฝ์ ์ด๋ ค๋ฉด componentDidMount ๋ผ์ดํ”„ ์‚ฌ์ดํด ํ•จ์ˆ˜๊ฐ€ ๋ฐ”๋”” ์Šคํƒ€์ผ์˜ ์›๋ž˜ ์ƒํƒœ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋งˆ์šดํŠธ ํ•ด์ œ์‹œ ํ•ด๋‹น ์Šคํƒ€์ผ์„ ๋ณต์› ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

bug ๐Ÿ›

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

overflow-y: overlay; CSS ์†์„ฑ์—์„œ ์ž˜ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
ezgif com-video-to-gif

๋ชจ๋“  3 ๋Œ“๊ธ€

+1 Dialog๊ฐ€ dom์— ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์ง์ ‘ ๊ด€๋ฆฌํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ง€๊ธˆ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์ œ๋Š” Overlay ๊ตฌ์„ฑ ์š”์†Œ ๋‚ด๋ถ€์— ์žˆ์Šต๋‹ˆ๋‹ค. overflow ์†์„ฑ์€ componentDidUpdate ์—์„œ๋งŒ ์—…๋ฐ์ดํŠธ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ œ๊ฑฐ๋˜๋ฉด ์†์„ฑ์ด ์žฌ์„ค์ •๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

+1

overflow-y: overlay; CSS ์†์„ฑ์—์„œ ์ž˜ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
ezgif com-video-to-gif

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰

๊ด€๋ จ ๋ฌธ์ œ

sys13 picture sys13  ยท  3์ฝ”๋ฉ˜ํŠธ

rbozan picture rbozan  ยท  3์ฝ”๋ฉ˜ํŠธ

chris-hinds picture chris-hinds  ยท  3์ฝ”๋ฉ˜ํŠธ

ryanflorence picture ryanflorence  ยท  3์ฝ”๋ฉ˜ํŠธ

FranBran picture FranBran  ยท  3์ฝ”๋ฉ˜ํŠธ