작성
·
715
0
선생님 ! 수업 잘 듣고 있습니다
혹시 offsetTop[index] = $(obj).offset().top; 이 부분에
$(obj)를 자바스크립트로 사용 하고 싶을 땐 어떻게 바꿔야할까요?
시도 해본 방법으로는
obj.offset().top;
obj[index].offset().top;
두 방법으로 시험해봣는데 둘다 오류가 뜨네요
혹시 답변 가능 하실까요?
답변 1
0
안녕하세요 지호님 :)
해당 코드를 바닐라 스크립트로 변경하고 싶을경우 다음과 같이 작성해보세요 ^^
선택자를 $(obj)로 사용하면 안됩니다 :)
$는 jquery를 의미하는거에요!
해당 구문을 바닐라로 변경할땐 다음과 같습니다.
const el = $('.sec1') //제이쿼리
const el = document.querySelector('.sec1'); //바닐라
다음과 같이 querySelector등을 이용해 엘리먼트를 찾으면 됩니다 :)
그리고 오프셋 값을 알고싶다면
const pos = el.getBoundingClientRect(); //엘리먼트의 left,right,bottom,top 위치값을 가지고오는 메소드를 호출해 pos변수에 담고
console.log(pos.top); //pos.top 값을 찾아보면 오프셋 탑값을 알 수 있습니다 :)
이해가 안간다면 해당 코드를 저장해 크롬으로 로그를 확인해보세요 :)
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<style type="text/css">
.sec1 {width: 100%; height: 500px; margin-top:200px; background-color: mediumpurple;}
</style>
<div class="sec1"></div>
<script type="text/javascript">
const el = document.querySelector('.sec1');
console.log(el);
const pos = el.getBoundingClientRect();
console.log(pos);
console.log(pos.top);
</script>
</body>
</html>
사용법은 메소드명만 다를뿐 제이쿼리 바닐라 크게 다르지 않으니 다양한 방법을 활용해 익혀보면 좋을것 같습니다.
그럼 또 다른 궁금증이 생길때 문의주세요 ^^