JavaScript가 없는 고정 탐색 모음
4699 단어 frontendwebdevcssjavascript
성공의 열쇠는 재산
position: sticky
입니다. 그리고 대부분의 브라우저에 대해 "부분 지원"으로 표시되어 있음에도 불구하고 꽤 잘 작동하고 있습니다. "일부"는 일부 브라우저가 일부 테이블 설정에서 해당 속성을 올바르게 처리하지 않는다는 사실 때문입니다. 테이블을 사용하지 않고 거기에 약간의 끈적거림을 원하지 않는다면 가셔도 좋습니다.다음은 내 코드personal site에서 변경된 코드입니다.
전에
자바스크립트
const navbar = document.querySelector('.navbar');
let sticky = navbar.offsetTop;
const navbarScroll = () => {
if (window.pageYOffset >= sticky) {
navbar.classList.add('sticky')
} else {
navbar.classList.remove('sticky');
}
};
window.onscroll = navbarScroll;
스타일시트
.navbar {
position: relative;
}
.sticky {
position: fixed;
top: 0;
left: 0;
}
후에
자바스크립트
// nope
스타일시트
.navbar {
position: sticky;
top: 0; /* it does not reposition right away,
but determines at which point it sticks */
}
주석에서 알 수 있듯이 요소가 스크롤되면 고정할 위치를 알려야 합니다
top
. 의미: 막대를 현재 보기의 맨 위 0까지 스크롤하지 않는 한 계속 위로 스크롤됩니다. 그 후에 그것은 거기에 머문다.테스트되지는 않았지만 다른 모든 방향에서도 작동할 수 있습니다. 하단 막대에 대한 사람? ;-)
결론
CSS와 JS의 여러 줄보다 두 줄의 CSS가 더 낫다고 생각합니다.
아직 존재하지 않는 것은 CSS 선택자가 없기 때문에 붙어 있거나 없을 때 다른 스타일을 적용하는 방법입니다. 그것이 올지는 모르지만 희망을 가질 수 있습니다.
나는 최근에 내 기사»How I wrote JavaScript to avoid JavaScript«에서 이것과 일반적인 JS 사용에 대해 블로그에 올렸습니다. 걱정하지 마십시오. 내가 했던 것처럼 모든 것을 버릴 필요는 없습니다. 그러나 나는 당신에게 생각할 거리를 주고 싶습니다. 너무 많은 JS로 문제를 해결했다는 것을 깨달을 수도 있습니다.
또한 HTML 및 CSS 표준의 사양 및 개발을 확인하십시오. 발견할 흥미로운 사항이 항상 있습니다. 최근 몇 년간 가장 큰 변화 중 하나는 플렉스박스와 그리드였는데, 많은 웹 디자이너들이 이러한 추가 사항을 환영했다고 생각합니다.
Reference
이 문제에 관하여(JavaScript가 없는 고정 탐색 모음), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/asaaki/sticky-navigation-bar-without-javascript-4d1p텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)