scrollify를 이용해 화면 우측에 위와 같은 pagination을 만들었다.
(html, css는 생략)
현재 section에 해당하는 원(span)에 active-dot 클래스를 추가하면 원의 색이 채워지고,
opacity: 0이 기본값인 텍스트(div)에 active-text 클래스를 추가하면 opacity: 1로 글자가 표시되게 했다.
결과적으로 scrollify 스크립트 코드에 아래와 같이 before 함수를 추가하면 된다. move() 동작 전에 함수가 실행된다.
ref엔 현재 section의 이름이 저장된다. data-section-name 값을 지정한 경우 그 값이 이름이 된다. (url #뒤에 표시됨)
$.scrollify({
section : ".scrollSection",
scrollbars: true,
overflowScroll: true,
setHeights: false,
touchScroll: false,
before:function(i, sections) {
var ref = sections[i].attr("data-section-name");
$(".main-nav .active-text").removeClass("active-text");
$(".main-nav .active-dot").removeClass("active-dot");
$(".main-nav").find("div[class=\"nav-text nav-text-" + ref + "\"]").addClass("active-text");
$(".main-nav").find("span[class=\"nav-dot-" + ref + "\"]").addClass("active-dot");
},
});
이때 jquery의 find를 사용해 현재 section에 해당하는 div와 span을 일치하는 class로 찾는데,
class 1개가 아닌 전체 클래스로 find해야 한다. ("nav-text nav-text-")
'JavaScript' 카테고리의 다른 글
[Scolltrigger] fade-in 효과 적용 시 이슈(잠깐 나타났다 fade-in 동작) (0) | 2023.04.24 |
---|---|
나의 Parallax 적용기.. [GSAP 사용] (0) | 2023.03.30 |
스크롤 부드럽게 하는 JS (0) | 2023.03.28 |
[GSAP]fade-in 효과 restart 제대로 적용하기(이전 잔상 없애기) (0) | 2023.03.16 |
scrollify.js에서 부드럽게 스크롤 하는 버튼 만들기 (0) | 2023.03.15 |