javascript - 动画在预加载 CSS 和图像之前开始
问题描述
我用一个包含一些图像(作为背景图像)的 CSS 文件创建了一个 jquery 动画。
为了确保在开始动画之前加载图像(也为了防止渲染阻塞 css 文件),我动态添加了 CSS 文件。我等待 CSS 文件完全加载,并且我对图像使用预加载技术,但都失败了。当我在慢速网络连接中测试动画时,动画开始工作并且在动画期间正在加载图像。这是我的代码逻辑:
- 我等待加载 CSS(第一个代码块)。
- 我开始预加载图像。(
loadImages()
) - 我在加载所有图像时开始动画(
startAnimation()
):
JS代码:
//Preloading CSS file before the animation starts:
var link = document.createElement('link');
link.setAttribute("rel", "stylesheet");
link.setAttribute("type", "text/css");
link.onload = function(){ loadImages(); } // also tried loadImages without ()
link.setAttribute("href", 'banner.css');
document.getElementsByTagName("head")[0].appendChild(link);
//PreLoading images I used in banner.css
var sumImage=0;
function loadImages(){
var imageFiles=[];
var images=["map1","map2","map3"];
for (var i=0; i<images.length; i++){
imageFiles[i] = new Image();
imageFiles[i].onload= sumImages(); // also tried sumImages without ()
imageFiles[i].src="banner/"+ images[i] +".png";
}
}
function sumImages(){
sumImage++ ;
//Starting animation when I ensure that all 3 images are loaded
if (sumImage== 3){startAnimation();}
}
我在打电话时也删除了括号sumImages()
,loadImages()
因为我的问题被标记为这个问题的重复,但没有任何改变。
解决方案
推荐阅读
- vbscript - 如何将命令发送到另一个 VBScript?
- python - 如何安装从 CMake 生成的 .so 文件并将其导入 python?
- python - 在没有 switch 语句的情况下,如何更有效地编写这个嵌套的 python 代码
- java - 基于可选值调用void方法时如何使用Optional的map和orElseGet方法
- google-apps-script - 其他用户可以使用 Google 表格中的应用程序脚本宏吗?
- python - Pygame:我如何摆脱出现在我的星球图像上的黑色光晕?
- lua - 访问 Lua 表的“属性”时出现“gettable 中的循环”Lua 错误
- javascript - 护照未成功重定向
- reactjs - 'dispatch' 是否必须被称为 'dispatch' 或者您可以直接调用 dispatch 而不标记它?
- arrays - 在python中以二维列表显示数据