同时加载图像
回答
我的小提琴https://jsfiddle.net/baz3ynt1/9/是使用JavaScript做图像加载一个答案异步,但是同时将它们添加到DOM以同步启动它们的动画。我不认为你可以强制浏览器在特定时间完成加载图像,因为浏览器不知道加载资源需要多长时间。
每个的Gif被使用
gif = new Image();
gif.src = 'image url';
gif.onload = handleLoading();
和handleLoading()
功能加载了触发startAnimation()
功能的所有照片与图像触发其onload
事件:
function handleLoading()
{
// numLoadedGifs is a counter previously initialized as zero
// gifUrls is an array of the urls to load
numLoadedGifs++;
if (numLoadedGifs === gifUrls.length)
{
// now all images are completely loaded
startAnimation();
}
};
然后startAnimation()
函数将先前创建的img
元素(存储在一个数组中)作为子元素放到<div id="animation">
上,但为了让它们同时运行,它们的src
属性被重新设置,并重新设置:
function startAnimation()
{
var animationDiv = document.getElementById('animation');
for (var index in gifList)
{
var img = animationDiv.appendChild(gifList[index]);
img.classList.add('cloth');
img.src = '';
img.src = gifUrls[index];
}
};
我在Firefox和IE 11测试它(重置src
是什么使得它在IE 11的工作)。
编辑:显然IE并不总是不够快,追加图像,然后重置其src
的一步到位,所以https://jsfiddle.net/baz3ynt1/10/拆分两个任务:
function startAnimation()
{
var animationDiv = document.getElementById('animation');
for (var index in gifList)
{
var img = animationDiv.appendChild(gifList[index]);
img.classList.add('cloth');
}
for (var index in gifUrls)
{
gifList[index].src = '';
gifList[index].src = gifUrls[index];
}
};
的GIF将需要在精确的同时
有一个叫拼合CSS技术加载。
相反装载4周100×100像素的GIF(或PNG),加载一个200x200像素的GIF,然后在一系列的100×100像素的div,你重新定位的background-image
,以便它显示只把部分的所需的200×200像素的图片显示:
.box {
float: left;
width: 100px;
height: 100px;
margin: 6px 12px 6px 0;
background-image: url(http://placehold.it/200x200);
}
.top-left {
background-position: 0 0;
}
.top-right {
background-position: -100px 0;
}
.bottom-left {
background-position: 0 -100px;
}
.bottom-right {
background-position: -100px -100px;
}
.original {
clear: left;
width: 200px;
height: 200px;
}
<div class="box top-left"></div>
<div class="box top-right"></div>
<div class="box bottom-left"></div>
<div class="box bottom-right"></div>
<div class="box original"></div>
这是一个很好的技术,它可以用于我的任务,但我设计了迄今为止不会使用这种技术的图像。我有一个人的设计,用户可以为这个人选择他想要的任何衣服。我可以选择上传用户选择的衣服并将其作为服务器上的图像,或者预先加载网页中每个布料的每个图像并将其放在人的上面。我选择了第二种方法,我正在寻找另一种技术。我不认为你提供的将会这样做。 –
另一种方法是使用javascript检测何时加载了所有图像并仅在该时刻开始动画。 – Rounin
- 1. 如何同时加载许多图像?
- 2. Ajax:同时加载多个图像
- 3. 通用图像加载器在Android中加载时显示不同的图像
- 4. 通过ajax调用加载图像,同时显示加载器图像
- 5. 加载图像,同时表单加载php脚本到iframe
- 6. 显示加载GIF图像,同时加载AJAX
- 7. 图像的尺寸与加载时和加载后不同
- 8. 在flex中加载图像时添加加载器图像
- 9. 仅在加载时才加载图像
- 10. 如何加载gridview时加载图像?
- 11. 加载和定位图像,当其他图像加载时
- 12. 如何在FULL图像加载时进行图像加载? jquery
- 13. 如何在加载大图像时显示加载图像?
- 14. 通用图像加载程序无法加载图像有时
- 15. wxPhyton加载图像时出错无法加载图像文件
- 16. 加载图像在时间
- 17. 加载时图像重叠
- 18. 加载图像时出错
- 19. 有时图像不加载
- 20. setTimeout预加载图像时
- 21. Jquery加载图像,而图像加载
- 22. 使用kinetic js一次加载一幅图像并同时加载一幅图像的图像
- 23. 脚本和图像是同步加载还是同步加载?
- 24. 显示加载图像,同时装载PHP脚本
- 25. 的Gif装载机同时加载重PNG图像
- 26. 添加背景图像,同时隐藏Tableview加载数据
- 27. 下载Flash swf时加载图像。 HTML
- 28. 在加载视图时加载图像视图
- 29. 加载CSS图像加载
- 30. 显示一个“正在加载...”图像,同时背景加载图像与毕加索
我创造了这个小提琴:https://jsfiddle.net/baz3ynt1/5/它使用javascript来加载gif(你不能强制它们同时加载),然后创建空的'img' DOM元素并设置它们的'src'属性在同一时间...我试过它在Firefox和它的作品,但它不在IE 11中,我不知道为什么。目前无法在Chrome中尝试。 –