Estou tentando fazer um menu com o mesmo comportamento do menu lateral da Alura que funciona que nem o do Worpress. A rolagem do menu é travado ao chegar no final, não bloqueando a rolagem do conteúdo principal da direita.
Como faz isso?
Achei esse script no js do Alura que parece ser responsável por isso:
var sticky = function() {
function a() {
f = d.getBoundingClientRect().height, g = window.innerHeight, h = e.getBoundingClientRect().height
}
function b() {
var a = window.scrollY || window.pageYOffset;
if (!(i == a || a < 0)) {
if (!(a > document.documentElement.offsetHeight - g)) {
var b = Math.max(Math.min(j + a - i, f - g), 0);
isNaN(b) || (b != j && (d.style.transform = "translateY(" + -b + "px)", j = b), i = a)
}
}
}
function c() {
f > h || window.innerWidth <= 691 ? d.style.position = "absolute" : (d.style.position = "fixed", b()), requestAnimationFrame(c)
}
var d = document.querySelector(".task-menu"),
e = document.querySelector(".task-body");
if (!(("scrollY" in window || "pageYOffset" in window) && "requestAnimationFrame" in window)) return void(d.style.position = "absolute");
var f, g, h;
window.addEventListener("resize", a), setTimeout(a, 0), setTimeout(a, 200);
var i = window.scrollY || window.pageYOffset, j = 0;
return requestAnimationFrame(c), {
recalc: a
}
}();
Mas não consegui entender.