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

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
자동등록방지 숫자입력

웹개발

번호 제목 글쓴이 날짜 조회수
42 [MySQL] user Table 권한설명 최고관리자 10-13 2,124
41 [NginX] Codeigniter를 위한 server config 최고관리자 09-09 2,829
40 [Nginx] 역할 최고관리자 09-09 2,784
39 [MySQL] Replace를 이용하여 데이타 내용 치환하기 최고관리자 09-08 1,787
38 [리눅스] Mysql Database 이름을 www.telepasi.com처럼 하면 안됨 최고관리자 09-08 1,740
37 [리눅스] CentOS vsftpd 설치 최고관리자 09-08 1,808
36 [리눅스] 사용자 목록 확인 (Linux User List) 최고관리자 09-08 13,943
35 [NginX] 리버스 프록시(Reverse Proxy)란 최고관리자 09-08 5,186
34 [리눅스] go lang - REST API를 위한 Gin 설치 최고관리자 09-07 1,834
33 [리눅스] go 환경설정 최고관리자 09-07 1,822
32 [리눅스] CentOS7 에서 go Lang 설치하기 최고관리자 09-07 1,788
31 [리눅스] Mysql 원격접속 허용하기 최고관리자 09-07 1,871
30 [서버설치] How to Install PHP 7, NGINX, MySQL on CentOS/RHEL 7.6 최고관리자 09-06 1,853
29 [서버 설치] mysql_secure_installation 최고관리자 09-06 1,787
28 [서버 설치] CentOS7 방화벽 설치 최고관리자 09-06 1,716
27 [DNS] abc.com www.abc.com 레코드 설정 최고관리자 09-05 1,746
26 [리눅스] httpd conf 위치 확인 및 conf 문법검사 명령 최고관리자 09-05 2,470
25 [리눅스] Apache 권한에 대한 참고 사항 최고관리자 09-04 4,461
24 [리눅스] CentOS Apache 주요 디렉토리 최고관리자 09-04 1,917
23 [리눅스] CentOS 6 vs CentOS 7 명령어 대응 최고관리자 09-04 2,000