2 回答

TA贡献1744条经验 获得超4个赞
就像在回调中重置滚动一样,beforeEnter您还需要从脚本中调用 init 方法,以在新页面加载时重置它们。afterEnter如果您需要访问新页面 dom,您也可以这样做。来自 barba.js 文档:
barba.init({
views: [{
namespace: 'home',
beforeEnter() {
// re-init/reset script default function on before page load
myScriptInit();
},
afterEnter() {
// refresh parallax on new page content
parallax.refresh();
}
}]
});

TA贡献1786条经验 获得超11个赞
就我而言,这有帮助:
barba.hooks.after(() => {
const bottomDOM = document.getElementsByTagName("body")[0]
const newScript = document.createElement("script")
const oldScript = document.querySelector(".main-script")
newScript.src = "js/main-dist.js"
newScript.className = "main-script"
oldScript.remove()
bottomDOM.appendChild(newScript)
})
我<script class="main-script"></script>在 DOM 末尾有一个,并使用 barba.hook 删除它,然后再次添加它
添加回答
举报