parent
							
								
									4af03a9e71
								
							
						
					
					
						commit
						fc4a4c1a4e
					
				@ -1,51 +0,0 @@ | 
				
			|||||||
function qs(selector: any, all = false) { | 
					 | 
				
			||||||
  return all | 
					 | 
				
			||||||
    ? document.querySelectorAll(selector) | 
					 | 
				
			||||||
    : document.querySelector(selector); | 
					 | 
				
			||||||
} | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const sections = qs(".section", true); | 
					 | 
				
			||||||
const timeline = qs(".timeline"); | 
					 | 
				
			||||||
const line = qs(".line"); | 
					 | 
				
			||||||
line.style.bottom = `calc(100% - 20px)`; | 
					 | 
				
			||||||
let prevScrollY = window.scrollY; | 
					 | 
				
			||||||
let up, down; | 
					 | 
				
			||||||
let full = false; | 
					 | 
				
			||||||
let set = 0; | 
					 | 
				
			||||||
const targetY = window.innerHeight * 0.8; | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function scrollHandler(e?: any) { | 
					 | 
				
			||||||
  const { scrollY } = window; | 
					 | 
				
			||||||
  up = scrollY < prevScrollY; | 
					 | 
				
			||||||
  down = !up; | 
					 | 
				
			||||||
  const timelineRect = timeline.getBoundingClientRect(); | 
					 | 
				
			||||||
  const lineRect = line.getBoundingClientRect(); // const lineHeight = lineRect.bottom - lineRect.top;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  const dist = targetY - timelineRect.top; | 
					 | 
				
			||||||
  console.log(dist); | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  if (down && !full) { | 
					 | 
				
			||||||
    set = Math.max(set, dist); | 
					 | 
				
			||||||
    line.style.bottom = `calc(100% - ${set}px)`; | 
					 | 
				
			||||||
  } | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  if (dist > timeline.offsetHeight + 50 && !full) { | 
					 | 
				
			||||||
    full = true; | 
					 | 
				
			||||||
    line.style.bottom = `-50px`; | 
					 | 
				
			||||||
  } | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  sections.forEach((item: any) => { | 
					 | 
				
			||||||
    // console.log(item);
 | 
					 | 
				
			||||||
    const rect = item.getBoundingClientRect(); //     console.log(rect);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (rect.top + item.offsetHeight / 5 < targetY) { | 
					 | 
				
			||||||
      item.classList.add("show-me"); | 
					 | 
				
			||||||
    } | 
					 | 
				
			||||||
  }); // console.log(up, down);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  prevScrollY = window.scrollY; | 
					 | 
				
			||||||
} | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
scrollHandler(); | 
					 | 
				
			||||||
line.style.display = "block"; | 
					 | 
				
			||||||
window.addEventListener("scroll", scrollHandler); | 
					 | 
				
			||||||
					Loading…
					
					
				
		Reference in new issue