我正在与barba js v2作斗争。在ajaxtransition之后,我的main.js脚本停止工作。我想以某种方式重新编写这个脚本...
我有一个简单的barba转换,像这样的->
import barba from "@barba/core"
class Transition {
constructor() {
// console.log(barba)
this.events()
}
events() {
// console.log("events")
barba.init({
transitions: [
{
name: "default-transition",
leave() {
// create your stunning leave animation here
console.log("leave")
},
enter() {
console.log("enter")
// create your amazing enter animation here
}
}
]
})
}
}
export default Transition在</body>标签的和处,我有
<script src="js/main-dist.js"></script>
</body>在main-dist.js脚本中还有几个导入的其他脚本,例如显示当前日期的函数。
当我第一次转到页面时,一切正常,但是当我转到另一个页面并返回到应该显示当前日期的页面时,日期没有显示,因为脚本没有初始化。它只在加载时初始化,而不是在ajaxload上初始化。
因此,我的障碍是以某种方式在ajaxload上重新初始化这个脚本。
发布于 2021-01-18 17:55:23
我想通了。我们可以在转换脚本中使用barba钩子"after“:)
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)
})我在DOM的末尾有一个<script class="main-script" src="js/main-dist.js"></script>,使用barba.hook删除它,然后再添加它
https://stackoverflow.com/questions/65761888
复制相似问题