我在嘗試使用Javascript更改圖像。從使用其他主題,我幾乎可以找到所有的工作;然而,gif動畫不是'動畫'。我相信這是因爲JS處於某種無限循環意味着圖像不斷加載;因此,動畫不播放。使用javascript更改圖片
感謝您的幫助!
道格拉斯
HTML代碼:
<img id="mainImage" onload="changeImage()" src="images/ios_full.gif">
JAVASCRIPT:
var isMobile = {
android: function() {
return navigator.userAgent.match(/Android/i);
},
ios: function() {
return navigator.userAgent.match(/iPhone|iPad|iPod/i);
},
othermobile: function() {
return navigator.userAgent.match(/Blackberry|Opera Mini|IEMobile/i);
},
};
function changeImage() {
var image = document.getElementById('mainImage');
var w = window.innerWidth;
var h = window.innerHeight;
if ((isMobile.android()) && (w < 500 || h < 500)) {
image.src = "images/android_short.gif";
} else if (isMobile.android()) {
image.src = "images/android_full.gif";
} else if ((isMobile.ios()) && (w < 500 || h < 500)) {
image.src = "images/ios_short.gif";
} else if (isMobile.ios()) {
image.src = "images/ios_full.gif";
} else if (isMobile.othermobile()) {
image.src = "images/other.gif";
} else if (w < 800 || h < 500) {
image.src = "images/ios_short.gif";
} else {
image.src = "images/ios_full.gif";
}
}
你是正確的,在onload被解僱每次設置'image.src'要麼使用時間一個全局變量或圖像標籤上的數據屬性,作爲檢查是否已經完成onload的標誌,或者在文檔加載時更改代碼以觸發onload,而不是圖像加載 –
或者如果您正在使用jQuery你可以使用一個綁定來讓事件觸發一次。 – user92454
謝謝Jaromanda X&user92454!非常感謝! – Douglas