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