具有barba.js的JS文件仅在首次加载时起作用,而在任何barba.js转换后均不起作用

时间:2020-10-22 10:54:17

标签: javascript html css barbajs

我正在使用barba.js进行页面转换,但是当我使用它的其他js文件时,我很难加载它。

下面是一个简单的功能,该功能仅在第一次页面加载时起作用,而在页面之间进行任何Barba转换后则不起作用。

这是其中一个JS文件的运行脚本功能

我在做什么错?如何解决所有barba.js转换后该脚本的问题?


// Function to call when re-initializing footer

function initfooter() {
  
let scrollDown = false;
let pageBottom = null;
let updated = null;
let footer = null;

window.onload = () => {
  footer = document.querySelector(".footer");

  window.onwheel = e => {
    handleScroll(e);
  };
};

handleScroll = e => {
  scrollDown = e.deltaY >= 0;
  pageBottom =
    window.innerHeight + window.scrollY >= document.body.offsetHeight;

  if (!updated) window.requestAnimationFrame(toggleFooter);
  updated = true;
};

toggleFooter = () => {
  if (scrollDown && pageBottom) {
    show();
  } else if (!scrollDown) {
    hide();
  }
  updated = false;
};

show = () => {
  if (footer.classList.contains("footer-hide")) {
    footer.classList.remove("footer-hide");
    footer.classList.add("footer-show");
  }
};

hide = () => {
  if (
    footer.classList.contains("footer-show") ||
    !footer.classList.contains("footer-hide")
  ) {
    footer.classList.remove("footer-show");
    footer.classList.add("footer-hide");
  }};
}
// Init Footer first time round
$(document).ready(function() {
  initfooter();
});
// Re-init footer after barba transition
barba.hooks.afterEnter(() => {
    initfooter();
});

0 个答案:

没有答案