본문 바로가기

Javascript/jQuery

offsetParent()

w3shools를 보다가 offsetParent()함수의 기능이 이해가 안가서 찾아보았다.

jquery홈페이지에서 찾아보니 금방 알 수 있어 좋구나.

http://docs.jquery.com/Traversing/offsetParent


offsetParent()는 첫번째로 매칭되는 부모를 선택한다. 선택의 기준은 가장 가까운 위치에 있는 position(relative or absolute)을 가지고 있는 부모를 말한다. 


<!DOCTYPE html>

<html>

<head>

<script src="jquery.js"></script>

<script>

$(document).ready(function(){

  $("button").click(function(){

    $("p").offsetParent().css("background-color","red");

  });

});

</script>

</head>

<body>

<div style="width:70%;position:absolute;left:100px;top:100px">

<div style="margin:50px;background-color:yellow">

<p>Click button to set the background color of the first positioned parent element of this paragraph.</p>

<button>Set background-color</button>

</div></div>

</body>

</html>

위 코드의 경우는 버튼을 클릭하면 <div style="width:70%;position:absolute;left:100px;top:100px"> 부분의 색이 바뀌게 된다. 여기서 조금 수정해서  position을 빼고 body에 적용하면 body의 바탕색이 바뀌게 된다. 그건 버튼의 부모중에 position을 가진 태그가 body밖에 없기 때문이다.


<!DOCTYPE html>

<html>

<head>

<script src="jquery.js"></script>

<script>

$(document).ready(function(){

  $("button").click(function(){

    $("p").offsetParent().css("background-color","red");

  });

});

</script>

</head>

<body style="width:70%;position:absolute;left:100px;top:100px">

1111

<div>

2222

<div style="margin:50px;background-color:yellow">

<p>Click button to set the background color of the first positioned parent element of this paragraph.</p>

<button>Set background-color</button>

</div></div>

</body>

</html>

이렇게 하면 body의 바탕색이 바뀌게 된다. 하지만... CSS에 약해서 정확한 용도는 모르겠다... CSS부분도 공부해봐야하나.... ㅠㅠ


'Javascript > jQuery' 카테고리의 다른 글

단축키를 눌러 특정위치로 이동  (0) 2012.11.22
레이어를 화면 중앙에 띄우기  (0) 2012.11.08
이벤트 처리(펌)  (0) 2012.10.04
ajax 사용해보자.  (0) 2012.09.26
jQuery 기초  (0) 2012.09.20