Javascript 下载图像时使用的加载程序
我在寻找一个预加载程序(一个旋转加载程序,用于演示正在后台加载图像)加载css背景时应显示此预加载程序。 背景故事: 我为SPA本身提供了一个全局预加载程序,因此用户在后台下载SPA时会看到一个加载程序 但是,当用户导航到包含图像的其他页面时,这些新图像必须由用户的浏览器下载,并且不会触发全局预加载程序 在下载所有图像之前,我可以如何显示现有加载程序,或者是否有其他解决方案Javascript 下载图像时使用的加载程序,javascript,vuejs2,vue-router,Javascript,Vuejs2,Vue Router,我在寻找一个预加载程序(一个旋转加载程序,用于演示正在后台加载图像)加载css背景时应显示此预加载程序。 背景故事: 我为SPA本身提供了一个全局预加载程序,因此用户在后台下载SPA时会看到一个加载程序 但是,当用户导航到包含图像的其他页面时,这些新图像必须由用户的浏览器下载,并且不会触发全局预加载程序 在下载所有图像之前,我可以如何显示现有加载程序,或者是否有其他解决方案 使用jQuery的解决方案是使用$(document).ready,在文档准备好后删除加载的内容。但是,我正在努力用Vu
使用jQuery的解决方案是使用
$(document).ready
,在文档准备好后删除加载的内容。但是,我正在努力用VueJS找到解决方案
目前,我看到的解决方案是使用类似的东西:,但仍然不能处理css背景图像
在主组件中添加了下面的代码<代码>已安装()已工作。
watcher()
显示加载程序,但当我将eventListener
添加到watcher()
中时,未触发侦听
export default {
mounted() {
window.addEventListener("load", () => {
let element = document.getElementById("global-loader");
element.style.display = "none";
});
},
watch: {
$route(to, from) {
let element = document.getElementById("global-loader");
element.style.display = "block";
// I dont know on how to switch global loader off after page switch took place and images were loaded
}
}
};
我已尝试为此使用路由器导航,但未触发addEventListener
,因为页面已加载:
router.beforeEach((to, from, next) => {
let element = document.getElementById("global-loader");
element.style.display = "block";
});
router.afterEach((to, from, next) => {
window.addEventListener("load", () => {
let element = document.getElementById("global-loader");
element.style.display = "none";
});
});
嗯,你可以在Vue组件中做同样的事情不 我已经有一段时间没有使用Vue了,但您可以执行以下操作:
...
mounted() {
window.addEventListener('load', () => {
// this is the same thing as "$(document).ready", do whatever you want here. Page is loaded.
})
},
...
看起来您无法在css背景图像上侦听加载事件
如链接文章中所述,您可以使用一个常规的
标记并监听其加载事件。以下是在Vue组件中的外观:
ImageLoadHack.vue
是上述示例中的神奇之处我不是下载者之一,但我认为这些投票是因为你的问题有很多元素(页面、图像、导航、css、vue应用程序),而没有太多具体的信息(代码)。你的问题对你来说显然很清楚,但对一个外部的人来说,甚至很难理解如何开始回答你的问题。另请参阅以获取一些指导。感谢您的评论,我已尝试使用侦听器,但在路线之间导航时未触发侦听器。感谢您的评论。您确信无法在css背景图像上侦听加载事件吗?我还用额外的代码示例更新了我的帖子。非常肯定。。。我认为文档上的加载事件不会在这里帮助您,因此您发布的代码不应该在我看来有效。我的建议是试试黑客