首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >barba js v2 reinit main.js脚本

barba js v2 reinit main.js脚本
EN

Stack Overflow用户
提问于 2021-01-17 22:33:15
回答 1查看 313关注 0票数 0

我正在与barba js v2作斗争。在ajaxtransition之后,我的main.js脚本停止工作。我想以某种方式重新编写这个脚本...

我有一个简单的barba转换,像这样的->

代码语言:javascript
运行
复制
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>标签的和处,我有

代码语言:javascript
运行
复制
    <script src="js/main-dist.js"></script>
  </body>

在main-dist.js脚本中还有几个导入的其他脚本,例如显示当前日期的函数。

当我第一次转到页面时,一切正常,但是当我转到另一个页面并返回到应该显示当前日期的页面时,日期没有显示,因为脚本没有初始化。它只在加载时初始化,而不是在ajaxload上初始化。

因此,我的障碍是以某种方式在ajaxload上重新初始化这个脚本。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-18 17:55:23

我想通了。我们可以在转换脚本中使用barba钩子"after“:)

代码语言:javascript
运行
复制
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删除它,然后再添加它

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65761888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档