728x90
300x250
SMALL
스크롤 했을때 해당 페이지에 위치해 있음을 확인 할 수 있도록 고정된 메뉴에 클래스를 붙여서 효과를 줄 수 있다.
예를 들면 이런식으로 클릭한 페이지를 클릭하거나 스크롤 되었을때 해당 메뉴에 클래스를 붙여줘서 스타일을 다르게 적용시켜준다.
1 2 3 4 5 6 7 8 9 | <nav id="nav"> <li><a href="#visual">HOME</a></li> <li><a href="#projects">PORTFOLIO</a></li> <li><a href="#skills">SKILLS</a></li> <li><a href="#aboutme">ABOUT</a></li> <li><a href="#contact">CONTACT</a></li> </ul> </nav> | cs |
메뉴를 이렇게 넣었다면
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | <script> $(window).on('scroll', function () { var pos = $(window).scrollTop(); var pos2 = pos + 50; var scrollBottom = pos + $(window).height(); // Link Highlighting if (pos2 > $('#visual').offset().top) { highlightLink('visual'); } if (pos2 > $('#projects').offset().top) { highlightLink('projects'); } if (pos2 > $('#skills').offset().top) { highlightLink('skills'); } if (pos2 > $('#aboutme').offset().top) { highlightLink('aboutme'); } if (pos2 > $('#contact').offset().top || pos + $(window).height() === $(document).height()) { highlightLink('contact'); } }); function highlightLink(anchor) { $('nav .active').removeClass('active'); $("nav").find('[href="#' + anchor + '"]').addClass('active'); } </script> | cs |
위와 같은 스크립트를 넣어준다.
스크롤 했을때 pos 변수에 스크롤탑 값이 들어가고
pos2에는 스크롤위치 값에 +50한 값이 들어간다.
scrollbottom에는 스크롤위치값과 윈도우 높에값이 들어간다.
현재 스크롤 위치에 +50한 값이 아이디값의 위치 top 값보다 크면 highlightLink 함수를 불러 온다.
마지막은 윈도우 높이값과 문서의 높이 값이 같으면 마지막 아이디 값을 불러온다.
highlightLink 함수가 실행되면 먼저 nav에 .active 클래스를 다 없애고 href에 해당 ancgor가 있는 버튼을 찾아서 active 클래스를 추가해준다.
728x90
반응형
LIST
'javaScript > JS Examples' 카테고리의 다른 글
인덱스에서 다른페이지 바로가기 연결 (location) (0) | 2018.12.18 |
---|---|
썸네일 클릭하면 풀스크린 모핑 팝업창 morphing modal (0) | 2018.12.12 |
부드러운 페이지 스크롤 적용하기 smooth scroll :: 제이쿼리 (1) | 2018.12.06 |
제이쿼리 :: height값 구하기 하고 높이 값에 따른 메뉴바 변 (0) | 2018.12.04 |
헤더 상단에 내비게이션 바 스크롤 시에 배경 변화 주기 (0) | 2018.12.02 |
댓글