[기능] 상단의 높이가 큰 메뉴상태에서 아래로 스크롤하면 상단에 높이가 낮은 메뉴가 고정됨

CSS 와 js를 이용한 메뉴 기능입니다.

https://www.w3schools.com/howto/howto_js_navbar_sticky.asp 

에 있는 내용입니다.


<!DOCTYPE html>

<html>

<head>

<meta name="viewport" content="width=device-width, initial-scale=1">

<style>

body {

  margin: 0;

  font-size: 28px;

  font-family: Arial, Helvetica, sans-serif;

}


.header {

  background-color: #f1f1f1;

  padding: 30px;

  text-align: center;

}


#navbar {

  overflow: hidden;

  background-color: #333;

}


#navbar a {

  float: left;

  display: block;

  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: #4CAF50;

  color: white;

}


.content {

  padding: 16px;

}


.sticky {

  position: fixed;

  top: 0;

  width: 100%;

}


.sticky + .content {

  padding-top: 60px;

}

</style>

</head>

<body>


<div class="header">

  <h2>Scroll Down</h2>

  <p>Scroll down to see the sticky effect.</p>

</div>


<div id="navbar">

  <a class="active" href="javascript:void(0)">Home</a>

  <a href="javascript:void(0)">News</a>

  <a href="javascript:void(0)">Contact</a>

</div>


<div class="content">

  <h3>Sticky Navigation Example</h3>

  <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>

  <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>

  <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>

  <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>

  <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>

  <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>

  <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>

</div>


<script>

window.onscroll = function() {myFunction()};


var navbar = document.getElementById("navbar");

var sticky = navbar.offsetTop;


function myFunction() {

  if (window.pageYOffset >= sticky) {

    navbar.classList.add("sticky")

  } else {

    navbar.classList.remove("sticky");

  }

}

</script>


</body>

</html>


0
0
이 글을 페이스북으로 퍼가기 이 글을 트위터로 퍼가기 이 글을 카카오스토리로 퍼가기 이 글을 밴드로 퍼가기
captcha
자동등록방지 숫자입력

웹개발

번호 제목 글쓴이 날짜 조회수
62 [Linux] CentOS postfix 메일서버 설치 및 설정(sendmail 설정) 최고관리자 12-23 1,489
61 [Ubuntu] 인터넷 연결이 안될 때 최고관리자 12-07 1,297
60 [Apache SSL] Ubuntu 인증서(전자서명) 최고관리자 11-24 1,408
59 [Ubuntu] ssl 임시 인증서 준비 및 발급받기 최고관리자 11-23 1,796
58 [Ubuntu] apache2 환경설정 생성기 최고관리자 11-23 3,013
57 [Ubuntu] apache2 설치 최고관리자 11-23 1,313
56 [vi 편집기] 단축키 최고관리자 11-23 1,243
55 [유용한 블로그] ^^.^^ 최고관리자 11-19 1,249
54 [JS] TimelineJS - 시간의 흐름을 네비게이션화 최고관리자 11-19 1,317
53 [JS] 스크롤을 감지하여 사이트의 헤더를 보이거나 숨기기 최고관리자 11-19 1,453
52 [Linux] NAS Mount 최고관리자 11-12 1,267
51 [React] React활용 최고관리자 11-10 1,306
50 [PHP] exec 실행에 대한 응답코드 최고관리자 11-02 1,656
49 [Linux] Shell Script 최고관리자 10-26 1,564
48 [폰트] 폰트 찾기 사이트 최고관리자 10-21 1,367
47 [통신] Socket packet test Program 최고관리자 10-20 1,850
46 [통신] 맥용 Socket Test Program 최고관리자 10-20 1,638
45 [통신] Mac에서 TCP Socket통신 테스트 하기 최고관리자 10-20 2,910
44 [NginX] 504 Gateway Time-out 에러와 해결방법 +1 최고관리자 10-16 24,603
43 [NginX] 설정 최고관리자 10-13 1,579