이전 글 "JS 배열 학습: 모든 요소를 지우는 4가지 방법(상세 코드 설명)"에서는 JS에서 배열을 지우고 배열의 모든 요소를 삭제하는 4가지 방법을 소개했습니다. 이번에는 js를 사용하여 요소의 위치를 계산하는 방법을 소개하겠습니다. 필요한 경우 참고할 수 있습니다.
JavaScript에서 요소의 위치는 두 가지 유형으로 나눌 수 있습니다. 하나는 브라우저 창을 기준으로 한 절대 위치이고 다른 하나는 상위 노드 또는 본문 요소를 기준으로 한 오프셋 위치입니다. 두 요소의 위치를 구하는 방법을 살펴보겠습니다.
1.js는 브라우저 창을 기준으로 요소의 절대 위치를 계산합니다.
분석: (전제 조건, 본문 노드의 기본 내부 및 외부 여백이 제거됨)
왼쪽 사이의 거리 div3 요소의 외부 테두리와 브라우저 창의 거리는 다음과 같습니다: div3의 왼쪽(20) + div2의 왼쪽 테두리 너비(3) + div1의 왼쪽 테두리 너비(3) = 26
div3 요소 및 브라우저 창은 다음과 같습니다. div3 요소의 왼쪽 외부 테두리와 브라우저 창 사이의 거리(26) + div3의 왼쪽 테두리 너비(3) + div3의 콘텐츠 너비(50) + 오른쪽 테두리 div3의 너비(3) = 26 + 3 + 50 + 3 = 82
div3 요소의 위쪽 외부 테두리와 브라우저 창 사이의 거리는 div1과 div2의 왼쪽 테두리 너비(3+3)입니다. + div3의 상위 값 (10) = 6+10 = 16
div3 요소의 아래쪽 외부 테두리 사이의 거리 브라우저 창의 거리는 div3 요소의 위쪽 외부 테두리와 div3 요소의 위쪽 외부 테두리 사이의 거리입니다. 브라우저 창(16) + div3의 위쪽 테두리 너비(3) + div3의 콘텐츠 너비(50) + div3의 아래쪽 테두리 너비(3) = 16+ 3+50+3=72
합시다 출력 결과가 다음과 같은지 확인하세요.
이 코드에는 getElementById() 및 getBoundingClientRect()라는 두 가지 중요한 메서드가 도입되었습니다.
getElementById()
메서드는 지정된id 값
을 기반으로 요소 개체를 가져올 수 있습니다(이 메서드는 지정된 ID를 가진 첫 번째 개체에 대한 참조를 반환할 수 있음)getElementById()
方法可以根据指定id值
来获取到元素对象(该方法可返回对拥有指定 ID 的第一个对象的引用)
而元素对象的getBoundingClientRect()
方法可以获取元素相对于浏览器视窗的位置,它会返回一个 Object 对象,该对象有 6 个属性:top、left、right、bottom、width、height:
元素对象.getBoundingClientRect().top
可返回元素上外边框到浏览器视窗上边框的距离;
元素对象.getBoundingClientRect().left
可返回元素左外边框到浏览器视窗左边框的距离;
元素对象.getBoundingClientRect().right
可返回元素右外边框到浏览器视窗左边框的距离;
元素对象.getBoundingClientRect().bottom
可返回元素下外边框到浏览器视窗上边框的距离;
元素对象.getBoundingClientRect().width
可返回元素的宽度,其中包括左、右边框宽度;
元素对象.getBoundingClientRect().height
可返回元素的高度,其中包括上、下边框宽度。
2、计算相对于父节点或 body 元素的偏移位置
获取元素的偏移位置
로그인 후 복사分析:(前提,将body 节点的默认内外边距去掉了)
div2因为没有定位父节点,所以其偏移是相对于 body 节点的,则水平和垂直偏移位置都为div1的边框宽度(3px)等于3px。
div4最近的定位父节点为div3,水平偏移位置就是div3的left 属性值(20px),垂直偏移位置就是div3的top 属性值(10px)。
我们看看输出结果是不是这样的:
通过上面示例,我们来了解两个属性:offsetLeft 和 offsetTop。
그리고 요소 개체의
offsetLeft
和offsetTop
getBoundingClientRect()
메서드는 브라우저 창을 기준으로 요소의 위치를 얻을 수 있으며 위쪽, 왼쪽, 오른쪽, 아래쪽, 6가지 속성이 있는 개체 개체를 반환합니다. 너비 및 높이:Element object.getBoundingClientRect().top
는 요소의 외부 테두리에서 브라우저 창의 위쪽 테두리까지의 거리를 반환할 수 있습니다. code>Element object.getBoundingClientRect().left 는 요소의 왼쪽 외부 테두리에서 브라우저 창의 왼쪽 테두리까지의 거리를 반환할 수 있습니다.Element object.getBoundingClientRect().right
는 요소의 오른쪽 외부 테두리에서 브라우저 창 거리의 왼쪽 테두리까지의 거리를 반환할 수 있습니다.element object.getBoundingClientRect().bottom
은 요소의 아래쪽 외부 테두리에서 브라우저 창의 위쪽 테두리까지element object.getBoundingClientRect() .width
는 왼쪽 및 오른쪽 너비를 포함하여 요소의 너비를 반환할 수 있습니다.Element object.getBoundingClientRect().height
는 상단 및 하단 테두리 너비를 포함하여 요소의 높이를 반환할 수 있습니다. 2 상위 노드 또는 본문 요소를 기준으로 오프셋 위치를 계산합니다.rrreee분석: (전제 조건, 본문 노드의 기본 내부 및 외부 여백이 제거됨)div2 왜냐하면 상위 노드이기 때문입니다. 따라서 오프셋은 본문 노드를 기준으로 하며 가로 및 세로 오프셋 위치는 모두 div1의 테두리 너비(3px)이며 이는 3px와 같습니다. div4의 가장 가까운 위치에 있는 상위 노드는 div3이고, 가로 오프셋 위치는 div3의 왼쪽 속성 값(20px), 세로 오프셋 위치는 div3의 위쪽 속성 값(10px)입니다. 출력이 다음과 같은지 확인해 보겠습니다. 위의 예를 통해 offsetLeft와 offsetTop이라는 두 가지 속성에 대해 알아봅니다.offsetLeft
및offsetTop
속성은 각각 상위 요소 또는 본문 요소를 기준으로 요소의 가로 및 세로 오프셋 위치를 가져올 수 있습니다. 【추천 학습: javascript 고급 튜토리얼】위 내용은 js를 사용하여 요소의 위치를 계산하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!