我在尝试使用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