JavaScript를 사용하여 부드러운 스크롤 설치
6146 단어 JavaScript
이런 녀석
동작 데모 - https://jsfiddle.net/zr36gcpb/
코드
HTML<div class="scroll">
<a class="scroll__button" href=".contents__1">Scroll</a>
<a class="scroll__button" href=".contents__2">Scroll</a>
<a class="scroll__button" href=".contents__3">Scroll</a>
<a class="scroll__button" href=".contents__4">Scroll</a>
</div>
<div class="contents">
<div class="contents__1">Contents1</div>
<div class="contents__2">Contents2</div>
<div class="contents__3">Contents3</div>
<div class="contents__4">Contents4</div>
</div>
JavaScriptconst smoothScroll = e => {
const target = document.querySelector(e.target.getAttribute('href'));
const position = target.getBoundingClientRect().top + window.scrollY;
e.preventDefault();
window.scrollTo({
top: position,
behavior: 'smooth'
});
//window.scrollToの引数のtopは「ドキュメントの左上を基準にした目標の要素のY座標のピクセル値」で、
//behaviorにはsmoothを指定する事で挙動がスムーススクロールになります。
}
const buttons = document.querySelectorAll('.scroll__button');
buttons.forEach(button => {
button.addEventListener('click', smoothScroll);
})
상기 함수smoothScroll
를 임의aタグ
로 이동하면 버튼href
에서 지정한 요소로 아날로그 스크롤할 수 있습니다.
하는 일은 간단하다. aタグ
에서 지정한 값href
을 얻고, 변수position
에 지정한 요소의'시청각 포트의 왼쪽 위에서 Y 좌표의 픽셀 수'와'현재 굴러가는 Y 좌표의 픽셀 수'의 값(=대상 요소의 절대 위치)을 저장한다.
이 값position
을 사용하여 window.scrollTo
에서 목표 위치로 스크롤합니다.
또한 취소aタグ
의 기본 동작preventDefault
도 지정한다.aタグ
이외에 사용하려면 href
를 지정data属性
으로 대체할 수 있다.
다 됐습니다.(*゜▽゜ノ☆petch petch
※ 주의사항
일부 브라우저의 매개 변수 부분이 대응하지 않기 때문에 때때로 일반 스크롤이 됩니다.
브라우저 설치 상태(MDN)
Reference
이 문제에 관하여(JavaScript를 사용하여 부드러운 스크롤 설치), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/taku-hu/items/3e02f94908d7540a089d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
HTML
<div class="scroll">
<a class="scroll__button" href=".contents__1">Scroll</a>
<a class="scroll__button" href=".contents__2">Scroll</a>
<a class="scroll__button" href=".contents__3">Scroll</a>
<a class="scroll__button" href=".contents__4">Scroll</a>
</div>
<div class="contents">
<div class="contents__1">Contents1</div>
<div class="contents__2">Contents2</div>
<div class="contents__3">Contents3</div>
<div class="contents__4">Contents4</div>
</div>
JavaScriptconst smoothScroll = e => {
const target = document.querySelector(e.target.getAttribute('href'));
const position = target.getBoundingClientRect().top + window.scrollY;
e.preventDefault();
window.scrollTo({
top: position,
behavior: 'smooth'
});
//window.scrollToの引数のtopは「ドキュメントの左上を基準にした目標の要素のY座標のピクセル値」で、
//behaviorにはsmoothを指定する事で挙動がスムーススクロールになります。
}
const buttons = document.querySelectorAll('.scroll__button');
buttons.forEach(button => {
button.addEventListener('click', smoothScroll);
})
상기 함수smoothScroll
를 임의aタグ
로 이동하면 버튼href
에서 지정한 요소로 아날로그 스크롤할 수 있습니다.하는 일은 간단하다.
aタグ
에서 지정한 값href
을 얻고, 변수position
에 지정한 요소의'시청각 포트의 왼쪽 위에서 Y 좌표의 픽셀 수'와'현재 굴러가는 Y 좌표의 픽셀 수'의 값(=대상 요소의 절대 위치)을 저장한다.이 값
position
을 사용하여 window.scrollTo
에서 목표 위치로 스크롤합니다.또한 취소
aタグ
의 기본 동작preventDefault
도 지정한다.aタグ
이외에 사용하려면 href
를 지정data属性
으로 대체할 수 있다.다 됐습니다.(*゜▽゜ノ☆petch petch
※ 주의사항
일부 브라우저의 매개 변수 부분이 대응하지 않기 때문에 때때로 일반 스크롤이 됩니다.
브라우저 설치 상태(MDN)
Reference
이 문제에 관하여(JavaScript를 사용하여 부드러운 스크롤 설치), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/taku-hu/items/3e02f94908d7540a089d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)