고정 내비게이션 바를 만드는 방법
9514 단어 htmljavascriptwebdevcss
데모 및 소스 코드
HTML
<div class="header">
<h2>Header</h2>
<p>Please Scroll down to see the sticky effect.</p>
</div>
<div id="navbar">
<a class="active" href="#">Home</a>
<a href="#">News</a>
<a href="#">Blog</a>
<a href="#">Videos</a>
<a href="#">Contact</a>
</div>
<div class="content">
<p>The navbar will stick to the top when you reach its scroll position.</p>
<p>
Some text to enable scrolling.. Lorem ipsum dolor sit amet, illum
definitiones no quo, maluisset concludaturque et eum, altera fabulas ut
quo. Atqui causae gloriatur ius te, id agam omnis evertitur eum. Affert
laboramus repudiandae nec et. Inciderint efficiantur his ad. Eum no
molestiae voluptatibus.
</p>
<!-- more dummy text for have scrolling -->
</div>
CSS
* {
padding: 0;
margin: 0;
box-sizing: border-box;
}
body {
margin: 0;
font-size: 28px;
font-family: Arial, Helvetica, sans-serif;
}
.header {
background-color: #f1f1f1;
padding: 30px;
text-align: center;
}
#navbar {
background-color: #333;
display: flex;
}
#navbar a {
display: block;
flex-basis: 20%;
color: #f2f2f2;
text-align: center;
padding: 14px 16px;
text-decoration: none;
font-size: 17px;
}
#navbar a:hover {
background-color: #ddd;
color: black;
}
#navbar a.active {
background-color: red;
color: white;
}
.content {
padding: 16px;
}
.sticky {
position: fixed;
top: 0;
width: 100%;
}
.sticky + .content {
padding-top: 60px;
}
설명:
sticky
. sticky
클래스는 요소를 페이지 상단에 고정시킵니다. sticky
클래스를 추가하고 페이지 상단에 고정합니다. 자바스크립트 코드
const navbar = document.getElementById('navbar')
const navbarPos = navbar.offsetTop
const handleScroll = () => {
const STICKY = 'sticky'
if (window.pageYOffset >= navbarPos) {
navbar.classList.add(STICKY)
return true
}
navbar.classList.remove(STICKY)
}
window.onscroll = function () {
handleScroll()
}
설명:
onscroll
이벤트를 사용하여 페이지의 스크롤 위치를 확인하고 있습니다. navbarPos
는 탐색 모음의 위치입니다. sticky
클래스를 추가합니다. sticky
클래스를 제거합니다. 그리고 그게 다야. 최종 결과:
Reference
이 문제에 관하여(고정 내비게이션 바를 만드는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/thatanjan/how-to-create-a-sticky-navigation-bar-31pd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)