JS OffsetParent attribute_javascript 기술에 대한 심층 분석

WBOY
풀어 주다: 2016-05-16 17:04:16
원래의
1106명이 탐색했습니다.

offsetParent 속성은 offsetParent를 호출하는 요소(포함 계층에서 가장 가까운)에 가장 가깝고 CSS 위치가 지정된 컨테이너 요소인 개체에 대한 참조를 반환합니다. 이 컨테이너 요소가 CSS 위치에 있지 않으면 offsetParent 속성의 값은 루트 요소(표준 호환성 모드의 html 요소, 이상한 렌더링 모드의 body 요소)에 대한 참조입니다. 컨테이너 요소의 style.display가 "none"(IE 및 Opera 제외)으로 설정된 경우 offsetParent 속성은 null을 반환합니다.

구문:
parentObj = element.offsetParent

변수:
· parentObj는 현재 요소의 오프셋이 계산되는 요소에 대한 참조입니다.

코드 복사 코드는 다음과 같습니다.




< ;meta http -equiv="Content-Type" content="text/html; charset=UTF-8" />
제목 없는 문서




OffsetParent 속성 테스트






테스트 결과:
Firefox3: "BODY"
Internet Explorer 7: "BODY"
Opera 9.51: "BODY"
Chrome 0.2: "BODY"
사파리 3: "BODY

결론:
DOM 구조 계층의 요소나 요소 모두 CSS 위치 지정(절대 또는 상대)인 경우 [또는 요소가 CSS 위치인 경우 때때로 요소가 DOM 구조 계층 구조에서 CSS에 의해 위치가 지정되지 않은 경우 이 요소의 offsetParent 속성 값은 루트 요소입니다. 보다 정확하게는 이 요소의 다양한 오프셋 계산(offsetTop, offsetLeft 등)에 대한 참조는 Body 요소입니다. (사실 표준 호환 모드나 이상한 모드와 관계없이 루트 요소는 Body 요소입니다)

테스트 코드 2

코드 복사 코드는 다음과 같습니다.




제목 없는 문서</ 제목><br><style type="text/css"><br>#parent {<br> 위치: 절대 <!-- 위치: 상대 --><br> 왼쪽: 25px; <br> 상단: 188px;<br> 테두리: 1px 단색 검정색;<br>}<br></style><br><script type="text/javascript" 언어="JavaScript"><br> function offset_init () {<br>var pElement = document.getElementById("sonObj");<br>parentObj = pElement.offsetParent;<br>alert(parentObj.tagName);<br> }<br></ script><br></head><br><body onload="offset_init()"><br><div id="parent">div 테스트 코드<br><p id=" sonObj"> ;OffsetParent 속성 테스트</p><br></div><br></body><br></html><br> </div> <br><strong>테스트 결과 : <br></strong>Firefox3: "DIV"<br>Internet Explorer 7: "DIV"<br>Opera 9.51: "DIV"<br>Chrome 0.2: "DIV"<br>Safari 3: "DIV" <p><strong><font style="COLOR: #ff0000">결론: <br></font></strong>요소의 상위 요소가 CSS 위치(절대 또는 상대)인 경우 이 요소의 offsetParent 속성 값은 해당 상위 요소의 값입니다. 요소. 더 정확하게 말하면 이 요소의 다양한 오프셋 계산(offsetTop, offsetLeft 등)에 대한 참조는 상위 요소입니다. </p> <p><strong>테스트 코드 3<br></strong></p> <div class="codetitle"> <span><a style="CURSOR: pointer" data="44399" class="copybut" id="copybut44399" onclick="doCopy('code44399')"><u>코드 복사</u></a></span> 코드는 다음과 같습니다</div> <div class="codebody" id="code44399"> <br><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><br> <html><br><head><br><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><br><title>제목 없음 문서






测试OffsetParent属性







测试结果:
Firefox3:"H1"
Internet Explorer 7:"H1"
Opera 9.51:"H1"
Chrome 0.2:"H1"
사파리 3:"H1"

结论:
当某个元素及其父元素도未进行CSS정位时(절대적 또는 친척적),则这个元素的offsetParent属性的取值为에서 DOM结构层次中距离其最近,并且已进行了CSS정거된 元素。

관련 라벨:
js
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿