28 lines
972 B
JavaScript
28 lines
972 B
JavaScript
define(function (require) {
|
|
|
|
return {
|
|
init: function() {
|
|
var last_known_scroll_position = 0;
|
|
var ticking = false;
|
|
|
|
window.addEventListener('scroll', function(e) {
|
|
if (!ticking) {
|
|
window.requestAnimationFrame(function() {
|
|
checkScroll();
|
|
});
|
|
ticking = true;
|
|
}
|
|
});
|
|
|
|
function checkScroll() {
|
|
var collapsed = (window.scrollY > 0 && last_known_scroll_position <= window.scrollY)
|
|
var sticky = window.scrollY > 0;
|
|
document.querySelector('header').classList.toggle('collapsed', collapsed);
|
|
document.querySelector('header').classList.toggle('sticky', sticky);
|
|
ticking = false;
|
|
last_known_scroll_position = window.scrollY;
|
|
}
|
|
checkScroll();
|
|
}
|
|
}
|
|
}); |