티스토리 뷰
//만약에 reveal 클래스가 있는데
//글씨를 span으로 감싸주고
//글씨를 다시 넣어주기
const descWrap = document.querySelectorAll(".content__item__desc");
descWrap.forEach(desc=>{
if(desc.classList.contains("reveal")){ //content__item__desc에 reveal 클래스가 포함되어 있으면.
let Text = desc.innerText;
Text = "<span>" + Text + "</span>";
desc.innerHTML = Text;
}
});
//requestAnimationFrame()을 이용한 보다 효율적인 코딩.
function scroll(){
let scrollTop = window.screenY || window.pageYOffset || document.documentElement.scrollTop;
document.querySelector(".srcollTop").innerText = Math.round(scrollTop);
const reveal = document.querySelectorAll(".reveal");
reveal.forEach(el=>{
let revealOffset = el.offsetTop + el.parentElement.offsetTop;
let revealDelay = el.dataset.delay; //data-delay 변수 지정.
// if(scrollTop > revealOffset - window.innerHeight/2){
// el.classList.add("show");
// }
//시간차로 작동하게 작업
if(scrollTop > revealOffset - window.innerHeight/2){
if(revealDelay == undefined){ //data가 없으면 show 클래스 그냥 추가.
el.classList.add("show");
} else { //data-delay가 있으면 시간차로 show 추가.
setTimeout(()=>{
el.classList.add("show");
},revealDelay) //변수 지정한 data-delay값 (500)
}
}
})
requestAnimationFrame(scroll) //재귀함수의 예 (자기자신을 호출)
}
scroll();
이번 예제는 스타일에서 작업을 한 후 리빌 효과를 주는 예제입니다.
스크롤이 내려감에 따라 박스가 가려지면서 나오는 효과 입니다.
우선 span 태그를 자바스크립트로 html에 넣어주는 작업을 해줍니다.
클래스에 data-delay를 만들어서 스크립트에서 setTimeout 함수를 이용해서 데이타 값이 들어가는 부분만 시간차로 나오게 작업해줍니다.
'Script Sample > Parallax Effect' 카테고리의 다른 글
패럴랙스 이펙트06. : 텍스트 효과 (0) | 2022.03.08 |
---|---|
패럴랙스 이펙트05. : 이질감 효과 (0) | 2022.03.08 |
패럴랙스 이펙트04. : 나타나기 (0) | 2022.03.08 |
패럴랙스 이펙트03. : 숨김메뉴 (0) | 2022.03.07 |
패럴랙스 이펙트 02. 사이드 메뉴 (0) | 2022.03.07 |
댓글
© 2018 webstoryboy