同時加載圖像
回答
我的小提琴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中嘗試。 –