제이쿼리를 사용하지 못 하는 상황에서 한 element의 왼상단에 아이콘을 띄우는 작업을 하려고 했다.
처음에 style.top 속성(offsetTop과 동일)을 사용했는데
div안에 element가 있을 경우에 위치에 오류가 있었다.
icon.style.position = 'absolute';
icon.style.top = element.style.top.replace('px', '') - 27 + 'px';
icon.style.left = element.style.left;
제이쿼리를 사용할 때
let top = $(element).offset().top
let lfet = $(element).offset().left
제이쿼리를 사용하지 않고 직접 계산
function getElementAbsoluteTop(element) {
let top = element.offsetTop;
let parent = element.offsetParent;
while (parent !== null) {
top += parent.offsetTop;
parent = parent.offsetParent;
}
return top;
}
function getElementAbsoluteLeft(element) {
let left = element.offsetLeft;
let parent = element.offsetParent;
while (parent !== null) {
left += parent.offsetLeft;
parent = parent.offsetParent;
}
return left;
}
'Frontend > javaScript' 카테고리의 다른 글
checklist (vue3) (0) | 2023.07.20 |
---|---|
요소 width 가져오는 속성과 메서드 (스크롤바 너비) (0) | 2023.07.05 |
객체 배열 분류 동일 객체 참조 / 객체 복사(Object.assign) (0) | 2023.06.22 |
선택자로 요소 가져오기(querySelector, querySelectorAll) (0) | 2023.06.14 |
JSON.parse() 와 JSON.stringify() 파라미터 (0) | 2023.06.13 |