728x90
반응형
모바일에서 화면을 위로 스크롤 할 때 상단 메뉴가 화면 위로 사라지게 된다. 이럴 때 메뉴를 화면에 고정 시켰다가 다시 아래로 스크롤하면 메뉴를 원위치 시키는 스크립트이다.
//-- html 파일 --
<div id="nav_box">상단 메뉴</div>
<script>
$(window).scroll(function(){
var docuTop = $(document).scrollTop();
if(docuTop > 100){
$("div#nav_box").css({"position" : "fixed", "top" : "-15px", "width" : "100%", "z-index" : 999, "border-bottom" : "5px solid #FF8000"})
}else{
$("div#nav_box").css({"position" : "relative", "top" : "", "border-bottom" : ""});
}
});
</script>
설명
○ $(window).scroll(function() {});
화면 스크롤 이벤트가 발생할 때마다 실행하는 함수
○ $(document).scrollTop()
화면의 현재 Top 위치를 숫자로 반환한다. 예를들어 화면이 위로 100px 만큼 올라갔다면 함수는 숫자 100을 반환한다.
○ $("div#nav_box").css({"position" : "fixed", "top" : "-15px", "width" : "100%", "z-index" : 999, "border-bottom" : "5px solid #FF8000"})
style을 만들어서 addClass와 removeClass를 이용하면 되지만 편의상 css를 바로 적용해도 무관한다. css()를 여러번 사용하는 것보다 JSON 형태로 속성 값을 넘겨주는 게 관리하기 편하다. postion에 fixed 속성을 주어 메뉴가 있는 div를 고정 시키는 게 중요하다.
○ $("div#nav_box").css({"position" : "relative", "top" : "", "border-bottom" : ""});
div 속성을 다시 relative로 바꾸고 top과 메뉴를 구분하기 위해 추가했던 border-bottom 값을 제거하는데 메뉴 style은 상황에 따라 각자 변경하면 된다.
728x90
반응형
'프로그래밍 > CSS & JS & Jquery' 카테고리의 다른 글
jQuery.mobile.css 사용 할 때 css 원하는대로 변경하기 (0) | 2019.09.17 |
---|---|
자바스크립트, Jquery를 이용해 DIV, SPAN 등 요소(element)를 배열로 사용하고 싶을 때 (0) | 2019.09.16 |
자바스크립트(Javascript)로 오버로딩 함수 구현하기 (0) | 2019.09.16 |