ìë°ì¤í¬ë¦½í¸ë ììì ëë¹ë ëì´ ê°ì 기í ì ë³´ ê´ë ¨ íë¡í¼í°ë¥¼ ì§ìí©ëë¤.
ì´ë° íë¡í¼í°ë ìì를 ìì§ì´ê±°ë í¹ì ì¢íì ìì¹ìí¬ ë ì¬ì©í ì ììµëë¤.
ìí ìì
íë¡í¼í° ì¬ì©ë²ì ìì보기 ìí´ ìëì ê°ì ìí ìì를 ì¬ì©í ìì ì ëë¤.
<div id="example">
...í
ì¤í¸...
</div>
<style>
#example {
width: 300px;
height: 200px;
border: 25px solid #E8C48F;
padding: 20px;
overflow: auto;
}
</style>
exampleì´ë¼ë idê° ë¶ì ì´ ììì borderì padding íë¡í¼í° ê°ì ì£¼ê³ , ì¤í¬ë¡¤ë°ë ìê¸°ê² ë§ë¤ì´ëììµëë¤. 기í íë¡í¼í°ë¥¼ ì¤ìµí´ 보기 ì ì í ì¡°í©ì´ì£ . ì°¸ê³ ë¡ marginì ìì ìì²´ì í¬í¨ëì§ ìê³ , ê´ë ¨í í¹ì ìë°ì¤í¬ë¦½í¸ íë¡í¼í°ë ìì´ì CSS íë¡í¼í°ì ì¶ê°íì§ ìììµëë¤.
ììì ìê¹ìë ë¤ìê³¼ ê°ìµëë¤.
ìëë°ì¤ë¥¼ ì´ì´ ìì를 ì§ì íì¸í´ ë³´ì¸ì.
ììì ì¤í¬ë¡¤ë°ê° ì기면 ë³µì¡í ìí©ì´ ìê¹ëë¤. 모ë ë¸ë¼ì°ì ê° ê·¸ë° ê±´ ìëì§ë§ ëªëª ë¸ë¼ì°ì ë ì½í ì¸ ìì ëë¹('content widthâë¡ íìí ìì) ì¼ë¶ë¥¼ ë¹ë ¤ ì¤í¬ë¡¤ë°ë¥¼ ìì¹ìí¤ê¸° ë문ì ëë¤.
ìí ìììì ì¤í¬ë¡¤ë°ê° ììë¤ë©´ ì½í
ì¸ ìì ëë¹ë 300pxì´ìì ê²ëë¤. ê·¸ë°ë° ì¤í¬ë¡¤ë°ê° 16pxì ì°¨ì§í기 ë문ì ì½í
ì¸ ìì ëë¹ê° 284px(300 â 16)ì´ ëììµëë¤(ì¤í¬ë¡¤ë° ëë¹ë ë¸ë¼ì°ì ë ëë°ì´ì¤ë§ë¤ ë¤ë¦
ëë¤). ì¤í¬ë¡¤ë°ê° ììë¤ë©´ ê³ì°ì´ ë§¤ì° ì¬ì ê² ì§ë§, ì°ìµì ìí´ ìí ììì ì¤í¬ë¡¤ë°ë¥¼ ì¼ë¶ë¬ í¬í¨íìµëë¤. ìì를 ë¤ë£° ëë ì¤í¬ë¡¤ë°ê° ì°¨ì§íë ê³µê°ì íì ì¼ëì ëì¸ì.
padding-bottom ììì¼ë¡ í
ì¤í¸ê° ëì¹ ì ììµëë¤.그림ìì í¨ë©ì ì무ê²ë ë³´ì´ì§ ìê² í´ëì긴 íì§ë§ ìì ë´ í
ì¤í¸ê° ê¸¸ì´ ëì¹ê² ë ê²½ì°ì ë¸ë¼ì°ì ê° ì´ í
ì¤í¸ë¤ì padding-bottomì íìí©ëë¤. ì´ë ì ìì ì¸ ëìì
ëë¤.
기í íë¡í¼í°
기í íë¡í¼í°(geometry property)를 그림ì¼ë¡ ëíë´ë©´ ë¤ìê³¼ ê°ìµëë¤.
기í íë¡í¼í°ì ê°ì ì«ìì¸ë° ê·¸ ë¨ìë 'í½ì âì ëë¤. 기í íë¡í¼í°ë í½ì ë¨ìë¡ ì¸¡ì ëë¤ê³ ë³´ìë©´ ë©ëë¤.
ì´ì ìì ì ì¼ ë°ë¶í° ììí´ ì°¨ê·¼ì°¨ê·¼ 기í íë¡í¼í°ë¥¼ ì´í´ë³´ëë¡ í©ìë¤.
offsetParentì offsetLeft, offsetTop
ì ì°ì´ë íë¡í¼í°ë ìëì§ë§ ê°ì¥ ë°ê¹¥ì ìë 기í íë¡í¼í°ì´ë¯ë¡ offsetParentì offsetLeft, offsetTopë¶í° ììë³´ê² ìµëë¤(offsetì ììê° íë©´ìì ì°¨ì§íë ìì ì ì²´ í¬ê¸°ë¥¼ ëíë´ëë°, ììì ëë¹ì ëì´ì í¨ë©, ì¤í¬ë¡¤ë°, í ë리를 í©ì¹ í¬ê¸°ì´ë©° ë§ì§ì í¬í¨ëì§ ììµëë¤ â ì®ê¸´ì´).
offsetParent íë¡í¼í°ë í´ë¹ ìì를 ë ëë§í ë, ì¢í ê³ì°ì ì¬ì©ëë ê°ì¥ ê°ê¹ì´ ì¡°ì ìì(the closest positioned ancestor element)ì 참조를 ë°íí©ëë¤.
CSS position íë¡í¼í°ê° ì¤ì ëì´ìë ì¡°ì ììê° ìë ê²½ì°ì ê°ì¥ ê°ê¹ì´ ì¡°ì <td>ë <th>, í¹ì <table>, ìëë©´ <body>ê° ë°íë기 ë문ì offsetParentì ìí´ ë°íëë ê°ì¥ ê°ê¹ì´ ì¡°ì ììë ìë ì
ì¤ íëì ìíê² ë©ëë¤.
- CSS
positioníë¡í¼í°ê°absoluteërelative,fixed,stickyì¸ ê°ì¥ ê°ê¹ì´ ì¡°ì ìì <td>ë<th>, í¹ì<table><body>
offsetLeftì offsetTop íë¡í¼í°ë offsetParent를 기ì¤ì¼ë¡ ê°ê° ììê° ì¤ë¥¸ìª½ì¼ë¡, ìë쪽ì¼ë¡ ì¼ë§ë ë¨ì´ì ¸ ìëì§ë¥¼ ëíë
ëë¤.
ìì를 ì´í´ë´
ìë¤. ì쪽ì ìë <div>ì offsetParentë <main>ì´ê³ offsetLeftì offsetTopì ê°ê° 180ì
ëë¤.
<main style="position: relative" id="main">
<article>
<div id="example" style="position: absolute; left: 180px; top: 180px">...</div>
</article>
</main>
<script>
alert(example.offsetParent.id); // main
alert(example.offsetLeft); // 180 (주ì: 문ìì´ '180px'ì´ ìë ì«ì 180ì´ ë°íë©ëë¤.)
alert(example.offsetTop); // 180
</script>
ë¤ì ê°ì ê²½ì°ì offsetParentê° nullì´ ë ì ììµëë¤.
- íë©´ì ë³´ì´ì§ ìë ìì(CSS
displayíë¡í¼í°ê°noneì´ê±°ë 문ì ë´ì ìì§ ìì ìì) <body>ì<html>positioníë¡í¼í°ê°fixedì¸ ìì
offsetWidthì offsetHeight
ì´ì 본격ì ì¼ë¡ ìì ìì²´ì ì§ì¤í´ ë´ ìë¤.
offsetWidthì offsetHeightë ê°ì¥ ê°ë¨í íë¡í¼í°ì
ëë¤. ë íë¡í¼í°ë ê°ê° ìì 'ê°ì¥ ë°ê¹¥ ë¶ë¶(outer)'ì´ ì°¨ì§íë ëë¹ì ëì´ ì 보를 ì ê³µí©ëë¤. í
ë리를 í¬í¨í ìì 'ì ì²´âì ì¬ì´ì¦ ì 보를 ì ê³µíë¤ê³ ë³´ìë©´ ë©ëë¤.
ìí ìì를 ëìì¼ë¡ offsetWidthì offsetHeight를 ê³ì°íë©´ ë¤ìê³¼ ê°ìµëë¤.
offsetWidth = 390â CSS width íë¡í¼í°(300px)를 ì¬ì©í´ ì»ì ì ìë ë°ê¹¥ ëë¹ì í¨ë©(2 * 20px)ê³¼ í ë리(2 * 25px) ëë¹ë¥¼ ëí ê°offsetHeight = 290â ë°ê¹¥ ëì´
기í íë¡í¼í°ë ë³´ì´ë ìì(displayed element)를 ëìì¼ë¡ë§ ê³ì°ë©ëë¤.
ë°ë¼ì ìì(í¹ì ì´ ììì ì¡°ì ìì ì¤ ì´ë¤ ê²ì´ë )ì CSS display íë¡í¼í°ê° noneì´ê±°ë 문ì ë´ì í´ë¹ ììê° ìì¼ë©´ 모ë 기í íë¡í¼í° ê°ì´ 0ì´ ë©ëë¤(offsetParent íë¡í¼í°ì ê°ì null).
ìì를 ë§ë¤ê¸´ íì§ë§ ìì§ ë¬¸ìì ì½ì
í기 ì ì´ë¼ëê°, ìë¡ê² ë§ë ììì display íë¡í¼í°ê° noneì´ë©´ 기í íë¡í¼í° ê°ì 0, offsetParent íë¡í¼í°ì ê°ì nullì´ ëë ê²ì´ì£ .
ì´ë° í¹ì§ì ì´ì©íë©´ ììì ì¨ê¹ ìí ì¬ë¶ë¥¼ ìë ê°ì ë°©ë²ì¼ë¡ íì¸í ì ììµëë¤.
function isHidden(elem) {
return !elem.offsetWidth && !elem.offsetHeight;
}
ì°¸ê³ ë¡ isHiddenì ììê° íë©´ì ì긴 íì§ë§ ì¬ì´ì¦ê° 0ì¼ ë(ë¹ì´ìë <div> ë±)ë true를 ë°íí기 ë문ì 주ìí´ì ì¬ì©í´ì¼ í©ëë¤.
clientTopê³¼ clientLeft
í ë리(border)ë ìì ë´ì ììµëë¤.
clientTopê³¼ clientLeft를 ì¬ì©íë©´ í
ë리 ëê»ë¥¼ 측ì í ì ììµëë¤.
ìí ìììì í ë리 ëê»ë¥¼ ê³ì°íë©´ ë¤ìê³¼ ê°ìµëë¤.
clientLeft = 25â ì¼ìª½ í ë리 ëë¹clientTop = 25â ì쪽 í ë리 ëì´
ê·¸ë°ë° ì¬ì¤ clientTopê³¼ clientLeft íë¡í¼í°ë í
ë리 ëì´, ëë¹ì ì íí ì¼ì¹íì§ ììµëë¤. ì ííë í
ë리 ë°ê¹¥ì 기ì¤ì¼ë¡ í í
ë리 ì ìë ì¢í를 ëíë
ëë¤.
ì¡°ê¸ í·ê°ë¦´ ì ìì¼ë ìì¸í ì¤ëª í´ë³´ê² ìµëë¤.
clientTopê³¼ clientLeftì ì°¨ì´ë ìëì´ë íë¸ë¦¬ì´ì²ë¼ ì¤ë¥¸ìª½ìì ì¼ìª½ì¼ë¡ ê¸ì´ ì ê°ëë ì¸ì´ì¼ ë ëë¬ë©ëë¤. ìëì´ê° ì¸í
ë ë¸ë¼ì°ì ìì ì¤í¬ë¡¤ë°ê° ì¤ë¥¸ìª½ì´ ìë ì¼ìª½ì ëíëê² ëëë°, ê·¸ë¼ clientLeftì ì¤í¬ë¡¤ë°ì ëë¹ê° í¬í¨ë©ëë¤.
clientLeftê° 25ê° ìë ì¤í¬ë¡¤ë° ëë¹ë¥¼ í¬í¨í 41(25 + 16)ì´ ëë ê±°ì£ .
íë¸ë¦¬ì´ë¥¼ ììë¡ ì§ì ì´í´ë´ ìë¤.
clientWidthì clientHeight
clientWidthì clientHeight íë¡í¼í°ë í ë리 ì ììì ì¬ì´ì¦ ì 보를 ì ê³µí©ëë¤.
í ë리 ììë ì½í ì¸ ëë¹ì í¨ë©ì´ í¬í¨ëëë°, ì¤í¬ë¡¤ë° ëë¹ë í¬í¨ëì§ ììµëë¤.
그림ìì clientHeightë¡ íìë ë¶ë¶ì 먼ì ì´í´ë´
ìë¤.
ê°ë¡ ì¤í¬ë¡¤ë°ê° ì기 ë문ì clientHeightë í
ë리 ì ìì ì 체를 ëí ê°ì´ ë©ëë¤. ëì´ 200pxì ì, ìë í¨ë©(2 * 20px)ì ëí ê°ì¸ 240pxì´ ëì£ .
ì´ì clientWidth를 ê³ì°í´ ë´
ìë¤. clientWidth를 ê³ì°í ë 주ìí ì ì ì¸ë¡ ì¤í¬ë¡¤ë°ê° ì°¨ì§íë ëë¹ 16px ë문ì ì½í
ì¸ ëë¹ë 300pxì´ ìë 284pxì´ ëë¤ë ì ì
ëë¤. ë°ë¼ì clientWidthë ì½í
ì¸ ëë¹ 284pxì ì¼ìª½, ì¤ë¥¸ìª½ í¨ë©(2 * 20px)ì ëí ê°ì¸ 324pxê° ë©ëë¤.
í¨ë©ì´ ììë¤ë©´ clientWidthì clientHeightë í
ë리ì ì¤í¬ë¡¤ë° ì쪽ì ìë ì½í
ì¸ ììì ëë¹, ëì´ì ì íí ì¼ì¹íì ê²ëë¤.
ë°ë¼ì í¨ë©ì´ ìë ê²½ì°ì clientWidthì clientHeight를 ì¬ì©í´ ì½í
ì¸ ìì í¬ê¸°ë¥¼ 구í ì ììµëë¤.
scrollWidthì scrollHeight
scrollWidthì scrollHeight íë¡í¼í°ë clientWidthì clientHeight ì ì¬íë°, ì¤í¬ë¡¤ë°ì ìí´ ê°ì¶°ì§ ììë í¬í¨íë¤ë ì ìì ì°¨ì´ê° ììµëë¤.
그림ì ì´í´ë´ ìë¤.
-
scrollWidth = 324â ìí ì¤í¬ë¡¤ë°ê° ì기 ë문ì ì쪽 ìì ì 체를 ëíë´ëclientWidthì ëì¼í©ëë¤. -
scrollWidth = 324â ì¤í¬ë¡¤ ë문ì ê°ë ¤ì§ ììì í¬í¨í ì½í ì¸ ìì ëì´ ì ì²´ -
scrollHeight = 723â ì¸ë¡ ì¤í¬ë¡¤ë°ì ê°ë ¤ì§ ë¶ë¶ì í¬í¨íë ì½í ì¸ ìì ì쪽 ì ì²´ì ëì´ -
scrollWidth = 324â ì½í ì¸ ìì ì쪽 ì ì²´ì ëë¹. 그림ì ê°ë¡ ì¤í¬ë¡¤ë°ê° ì기 ë문ìclientWidthì ëì¼í©ëë¤.
scrollWidthì scrollHeightë ìì í¬ê¸°ë¥¼ ì½í
ì¸ ê° ì°¨ì§íë ë§í¼ ëë¦¬ê³ ì í ë ì¬ì©í ì ììµëë¤.
ìì:
// ì½í
ì¸ ê° ì°¨ì§íë ëì´ë§í¼ ìì ëì´ë¥¼ ë림
element.style.height = `${element.scrollHeight}px`;
ë²í¼ì ëë¬ ì§ì ìì í¬ê¸°ë¥¼ íì¥í´ ë´ ìë¤.
scrollLeftì scrollTop
scrollLeftì scrollTopì ê°ë¡ ì¤í¬ë¡¤ì´ ì¤ë¥¸ìª½, ì¸ë¡ ì¤í¬ë¡¤ì´ ìëë¡ ìì§ìì ë°ë¼ ê°ë ¤ì§ ììì ëë¹ì ëì´ë¥¼ ëíë
ëë¤.
ì¸ë¡ ì¤í¬ë¡¤ë°ë¥¼ ìëë¡ ì¡°ê¸ ë´ë¦° ê²½ì°ë¥¼ ê°ì í 그림ì ììë¡ ë¤ì´ë´
ìë¤. scrollHeightìì scrollTopì´ ì¼ë§ë§í¼ì ììì ì°¨ì§íëì§ë¥¼ ì´í´ë³¼ ì ììµëë¤.
ì´ë ê² scrollTopì âì¸ë¡ ì¤í¬ë¡¤ë°ì ìí´ ê°ë ¤ì ¸ ë³´ì´ì§ ìëâ ì쪽 ì½í
ì¸ ì ëì´ê° ë©ëë¤.
scrollLeftì scrollTopì ìì ê°ë¥í©ëë¤.기í íë¡í¼í° ëë¶ë¶ì ì½ê¸°ì ì©ì´ì§ë§ scrollLeftì scrollTopì ë³ê²½ì´ ê°ë¥í©ëë¤. ì¤í¬ë¦½í¸ë¡ íë¡í¼í°ë¥¼ ìì íë©´ ìëì¼ë¡ ìì ë´ ì¤í¬ë¡¤ì´ ìì§ì
ëë¤.
ìì를 í´ë¦íë©´ ì¤í¬ë¡¤ë°ê° 10px ìëë¡ ë´ë ¤ê°ëë¡ elem.scrollTop += 10ì ì¤í¬ë¦½í¸ì ì¶ê°í´ ëììµëë¤.
í´ë¦
1
2
3
4
5
6
7
8
9
ì´ë° í¹ì§ì ì´ì©íë©´ scrollTopì 0ì´ë 1e9ê°ì ì주 í° ì«ìë¡ ì¤ì í´ ì¤í¬ë¡¤ë°ë¥¼ ìµìë¨ì´ë ìµíë¨ì¼ë¡ ì®ê¸¸ ì ììµëë¤.
CSS를 ì¬ì©í´ ëë¹ì ëì´ë¥¼ ì»ì§ ë§ì¸ì
ì§ê¸ê¹ì§ ìì ëë¹ì ëì´, ìì í¬ì§ì ë ê´ë ¨ 거리를 구íë ë° ì¬ì©ëë 기í íë¡í¼í°ë¥¼ ì´í´ë³´ììµëë¤.
ê·¸ë°ë° ì°ë¦¬ë ì¤íì¼ê³¼ í´ëì¤ ì±í°ìì getComputedStyle를 ì¬ì©í´ CSSê° ì ì©ë ììì ëì´ì ëë¹ë¥¼ 구í ì ìë¤ë ê²ì ìì본 ë° ììµëë¤.
ê·¸ë ë¤ë©´ ì getComputedStyle를 ì¬ì©í´ ìì ëë¹ì ëì´ë¥¼ ì»ì§ ë§ë¼ê³ íë 걸ê¹ì?
let elem = document.body;
alert( getComputedStyle(elem).width ); // CSSê° ì ì©ë elemì ëë¹
getComputedStyleê° ìë 기í íë¡í¼í°ë¥¼ ì¬ì©í´ ëë¹ì ëì´ ì 보를 ì»ì´ì¼ íë ë°ë ë¤ìê³¼ ê°ì ì´ì ê° ììµëë¤.
-
CSS
widthìheightë ë¤ë¥¸ CSS íë¡í¼í°ì ìí¥ì ë°ìµëë¤. ììì ëë¹ì ëì´ ê³ì° ë°©ë²ì 'ì§ì âíëbox-sizingì´ ì´ë° íë¡í¼í°ì ëíì ì¸ ìì´ì£ .box-sizingì ë³ê²½íë©´getComputedStyleë¡ êµ¬í ê°ì´ ë¶ì í í ì ììµëë¤. -
CSS
widthìheightëautoì¼ ì ììµëë¤. ì¸ë¼ì¸ ìì(inline element)ê° ì´ë° ê²½ì°ì ìí©ëë¤.<span id="elem">ìë íì¸ì!</span> <script> alert( getComputedStyle(elem).width ); // auto </script>CSS ê´ì ìì ë³´ë©´
width:autoë ì í ì´ìí ê² ìì´ ë³´ì ëë¤. ê·¸ë°ë° ìë°ì¤í¬ë¦½í¸ ì ì¥ìì ì íípxê°ì´ ìì´ì¼ ê³ì°ì í ì ì기 ë문ì autoë¼ë ê°ì ì¸ëª¨ê° ììµëë¤.
ë¤ë¥¸ í ê°ì§ ì´ì ë ì¤í¬ë¡¤ë°ë문ì
ëë¤. ì¤í¬ë¡¤ë°ê° ìì¼ë©´ ì ì ëìíëë°, ì¤í¬ë¡¤ë°ê° ì기면 ìëí ëë¡ ëìíì§ ìë ì½ëê° ììµëë¤. ì´ë° ì¼ì ì¤í¬ë¡¤ë°ê° ì½í
ì¸ ììì ì°¨ì§íë ëªëª ë¸ë¼ì°ì ìì ë°ìí©ëë¤. ì´ë¤ ë¸ë¼ì°ì ìì ì½í
ì¸ ê° ì¤ì ì°¨ì§íë ììì´ CSSë¡ ì¤ì í ëë¹ë³´ë¤ ì¢ìë°, clientWidthì clientHeightë ì´ë¥¼ ê³ ë ¤í´ í´ë¼ì´ì¸í¸ ììê° ì°¨ì§íë ê³µê°ì ê³ì°í©ëë¤.
ê·¸ë°ë° getComputedStyle(elem).width를 ì¬ì©íë©´ ìí©ì´ ë¬ë¼ì§ëë¤. Chrome ê°ì ë¸ë¼ì°ì ë ì¤í¬ë¡¤ë° ëë¹ë¥¼ ì ì¸í ì§ì§ ë´ë¶ ëë¹ë¥¼ ë°ííëë° Firefox ê°ì ë¸ë¼ì°ì ë ì¤í¬ë¡¤ë°ë¥¼ 무ìíê³ CSSë¡ ì¤ì í ëë¹ë¥¼ ë°íí©ëë¤. ì´ë° ë¸ë¼ì°ì ê° ì°¨ì´ ë문ì getComputedStyleì´ ìë 기í íë¡í¼í°ë¥¼ ì¬ì©í´ì¼ í©ëë¤.
ì¤í¬ë¡¤ë°ê° ì°¨ì§íë ììì ë°ë¡ ëë ë¸ë¼ì°ì (Windowsìì ëìê°ë ëë¶ë¶ì ë¸ë¼ì°ì )ìì ìë ìì를 ì¤ííë©´ 300pxì´ ìë ë¤ë¥¸ ê°ì´ ì¶ë ¥ëë ê²ì íì¸í ì ììµëë¤.
í
ì¤í¸ê° ë¤ì´ìë ì ììì CSSì width:300pxê° ì¤ì ëì´ ìë ìíì
ëë¤.
Windowsê° ì¤ì¹ë ë°ì¤í¬í± PCì Firefox, Chrome, Edge ë¸ë¼ì°ì ë 모ë ì¤í¬ë¡¤ë° ììì ë°ë¡ ë¼ì´ëìµëë¤. ê·¸ë°ë° Windows ì´ì¸ì OSê° ì¤ì¹ë PCì Firefoxìì ìì를 ì¤ííë©´ 300pxì´ ì¶ë ¥ëë ê²ì íì¸í ì ììµëë¤. ë¤ë¥¸ ë¸ë¼ì°ì ë¤ì âì§ì§â ëë¹ë¥¼ ì¶ë ¥íë ë°ë©´ Firefoxë CSSë¡ ì¤ì í ëë¹ë¥¼ ì¶ë ¥í기 ë문ì
ëë¤.
getComputedStyleê³¼ 기í íë¡í¼í°ì ì°¨ì´ë ìë°ì¤í¬ë¦½í¸ë¥¼ ì¬ì©í´ getComputedStyle(...).widthë¡ ê°ì ì»ê³ ì í ëë§ ë°ìí©ëë¤. ëì¼ë¡ ë´¤ì ë ì í 문ì ê° ìì¼ë ì´ ì ì ì ìíì기 ë°ëëë¤.
ìì½
ììë ë¤ìê³¼ ê°ì 기í íë¡í¼í°ë¥¼ ì§ìí©ëë¤.
offsetParentâ ìì¹ ê³ì°ì ì¬ì©ëë ê°ì¥ ê°ê¹ì´ ì¡°ì ììëtd,th,table,bodyoffsetLeftìoffsetTopâoffsetParent기ì¤ì¼ë¡ ììê° ê°ê° ì¤ë¥¸ìª½, ìë쪽ì¼ë¡ ì¼ë§ë ë¨ì´ì ¸ ìëì§ë¥¼ ëíë´ë ê°offsetWidthìoffsetHeightâ í ë리를 í¬í¨ ìì 'ì ì²´âê° ì°¨ì§íë ëë¹ì ëì´clientLeftìclientTopâ ìì ì ì¼ ë°ì ê°ì¸ë ììê³¼ ìì ì(ì½í ì¸ + í¨ë©)ì ê°ì¸ë ìì ì¬ì´ì 거리를 ëíë. ëë¶ë¶ì ê²½ì° ì¼ìª½, ì쪽 í ë리 ëê»ì ì¼ì¹íì§ë§, ì¤ë¥¸ìª½ìì ì¼ìª½ì¼ë¡ ê¸ì ì°ë ì¸ì´ê° ì¸í ë OSììclientLeftì ì¤í¬ë¡¤ë° ëê»ê° í¬í¨ë¨clientWidthìclientHeightâ ì½í ì¸ ì í¨ë©ì í¬í¨í ììì ëë¹ì ëì´ë¡, ì¤í¬ë¡¤ë°ë í¬í¨ëì§ ììscrollWidthìscrollHeightâclientWidth,clientHeightê°ì´ ì½í ì¸ ì í¨ë©ì í¬í¨í ììì ëë¹ì ëì´ë¥¼ ëíë´ëë°, ì¤í¬ë¡¤ë°ì ìí´ ì¨ê²¨ì§ ì½í ì¸ ììê¹ì§ í¬í¨ë¨scrollLeftìscrollTopâ ì¤í¬ë¡¤ë°ê° ì¤ë¥¸ìª½, ìëë¡ ìì§ìì ë°ë¼ ê°ë ¤ì§ê² ëë ìì ì½í ì¸ ì ëë¹ì ëì´
ì¤í¬ë¡¤ë°ë¥¼ ìì§ì¼ ì ìê² í´ì£¼ë scrollLeftì scrollTopì ì ì¸í 모ë íë¡í¼í°ë ì½ê¸° ì ì©ì
ëë¤.

ëê¸
<code>í그를, ì¬ë¬ ì¤ë¡ 구ì±ë ì½ë를 ì½ì íê³ ì¶ë¤ë©´<pre>í그를 ì´ì©íì¸ì. 10ì¤ ì´ìì ì½ëë plnkr, JSBin, codepen ë±ì ìëë°ì¤ë¥¼ ì¬ì©íì¸ì.