setTimeout 不适用于 vue.js 应用程序
setTimeout not working on vue.js application
我有一个函数在页面加载 1 秒后启动,在本地开发阶段它可以工作,但是当我构建我的应用程序并将其放在服务器上时,超时不再起作用(在 chrome 它只有在接受 cookie 的横幅并重新加载页面后才能工作),而如果我进入隐身模式,它就不起作用。
这是超时代码:
window.setTimeout(() => {
this.brake();
},1000);
这是一个 vue.js 应用程序。
我尝试通过插入这段代码来修改函数:
document.addEventListener('DOMContentLoaded', function() {
window.setTimeout(() => {
this.brake();
},1000);
}, false);
但是还是不行。
测试站点的link为:https://new.carbobrake.com/
页面加载完成后,磁盘应该会自行停止,但这并没有发生。
----编辑----
这是我的代码:
<div id="animation-container">
<img id="fixed-canvas-container" :src="this.homeImages[0]" alt="" />
<img id="scroll-canvas-container" :src="this.animationImages[0]" alt="" />
<div id="step0">
// other code
</div>
</div>
Javascript:
methods: {
brake() {
this.canvasContainer = document.getElementById("fixed-canvas-container");
this.canvasContainer.src = this.homeImages[1];
setTimeout(() => {
document.body.style.overflowY = "visible";
this.setImageMargin();
document.getElementById("scroll-canvas-container").style.display =
"block";
var step0 = document.getElementById("step0");
TweenMax.fromTo(
step0,
0.5,
{
display: "none",
opacity: 0,
},
{
display: "block",
opacity: 1,
ease: Power3.easeIn,
}
);
}, 1100);
// TODO check
setTimeout(() => {
this.canvasContainer.style.display = "none";
},2500);
}
},
mounted() {
window.setTimeout(() => {
this.brake();
}, 1000);
}
我是这样解决的:
window.addEventListener('load', this.brake);
现在它可以在页面加载结束时正常工作。
我有一个函数在页面加载 1 秒后启动,在本地开发阶段它可以工作,但是当我构建我的应用程序并将其放在服务器上时,超时不再起作用(在 chrome 它只有在接受 cookie 的横幅并重新加载页面后才能工作),而如果我进入隐身模式,它就不起作用。
这是超时代码:
window.setTimeout(() => {
this.brake();
},1000);
这是一个 vue.js 应用程序。
我尝试通过插入这段代码来修改函数:
document.addEventListener('DOMContentLoaded', function() {
window.setTimeout(() => {
this.brake();
},1000);
}, false);
但是还是不行。
测试站点的link为:https://new.carbobrake.com/
页面加载完成后,磁盘应该会自行停止,但这并没有发生。
----编辑----
这是我的代码:
<div id="animation-container">
<img id="fixed-canvas-container" :src="this.homeImages[0]" alt="" />
<img id="scroll-canvas-container" :src="this.animationImages[0]" alt="" />
<div id="step0">
// other code
</div>
</div>
Javascript:
methods: {
brake() {
this.canvasContainer = document.getElementById("fixed-canvas-container");
this.canvasContainer.src = this.homeImages[1];
setTimeout(() => {
document.body.style.overflowY = "visible";
this.setImageMargin();
document.getElementById("scroll-canvas-container").style.display =
"block";
var step0 = document.getElementById("step0");
TweenMax.fromTo(
step0,
0.5,
{
display: "none",
opacity: 0,
},
{
display: "block",
opacity: 1,
ease: Power3.easeIn,
}
);
}, 1100);
// TODO check
setTimeout(() => {
this.canvasContainer.style.display = "none";
},2500);
}
},
mounted() {
window.setTimeout(() => {
this.brake();
}, 1000);
}
我是这样解决的:
window.addEventListener('load', this.brake);
现在它可以在页面加载结束时正常工作。