스크롤 속도에 따라 사라지거나 나타나는 눈썹을 만들다
5259 단어 CSSJavaScript설계tech
말로 설명하기는 어렵지만, 어쨌든 이런 행위다.
견본
마우스(설정에 따라)라면 속도가 빨라 분별하기 어려우니 터치스크린이나 스마트폰으로 해보세요.
하는 일은 간단하다. 단지 자바스크립트로
position: sticky;
머리에 고정된 값을 만들 뿐이다.(더 좋은 방법이 있으면 알려주세요)const header = document.querySelector("header"),
headerStyle = window.getComputedStyle(header),
headerHeight = parseFloat(headerStyle.height);
let lastPosition = 0;
document.addEventListener("scroll", () => {
const currentPosition = window.scrollY,
diff = currentPosition - lastPosition;
let newTop = parseFloat(headerStyle.top) - diff;
if (diff < 0) {
newTop = Math.min(newTop, 0);
} else {
newTop = Math.max(newTop, 0 - headerHeight);
}
header.style.top = `${newTop}px`;
lastPosition = currentPosition;
});
현재top
에서 이동 거리를 빼고 범위를 초과한 상한과 하한은 새로운top
이다.그림자가 있다면 높이도 고려해야 한다.
newTop = Math.max(newTop, 0 - headerHeight - shadowHeight)
후기
서서히 구르지 않으면 모르죠. 구애받지 않으면 CSS면 충분해요.
Reference
이 문제에 관하여(스크롤 속도에 따라 사라지거나 나타나는 눈썹을 만들다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/akimon658/articles/awesome-header텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)