我'。 Image-loaded-show表示在图像完全加载之前,宽度和高度为0,即不会显示并占用任何空间。图像加载放映功能由JavaScript在移动浏览器
现在的问题是,图像不会出现,直到所有的图像加载。
我需要的是,在页面的iamge是独立的,一旦加载,图像显示出来。
如何修改这段JavaScript代码的任何提示?谢谢。
<script type='text/javascript'>
var srcs = [];
window.doBindLinks = function() {
var elems = document.getElementsByTagName('img');
for (var i = 0; i < elems.length; i++) {
var elem = elems[i];
var link = elem.getAttribute('src');
elem.setAttribute('link', link);
elem.removeAttribute('width');
elem.removeAttribute('height');
elem.removeAttribute('class');
elem.removeAttribute('style');
if(link.indexOf('.gif')>0)
{
elem.parentNode.removeChild(elem);
}else{
}
}
var content = document.getElementById('content');
var images = content.getElementsByTagName('img');
for (var i = 0; i < images.length; i++) {
srcs[i] = images[i].src;
loadImage(images[i], srcs[i],
function (cur, img, cached) {
cur.src = img.src;},
function (cur, img) {
cur.style.display = 'none';});
}
};
var loadImage = function (cur, url, callback, onerror) {
var img = new Image();
img.src = url;
img.width = '100%';
if (img.complete) {
callback && callback(cur, img, true);
return;
}
img.onload = function() {
callback && callback(cur, img, true);
return;
};
if (typeof onerror == 'function') {
img.onerror = function() {
onerror && onerror(cur, img);
}
}
};
</script>
页面的源代码是:
<body onload="doBindLinks();"><div id="content"> images and text </div></body>
PS:因为我需要写在C#这个JavaScript字符串,我更换(“)到(')
。编辑: 是下列权利:
window.doBindLinks = function() {
var elems = document.getElementsByTagName('img');
for (var i = 0; i < elems.length; i++) {
var elem = elems[i];
var link = elem.getAttribute('src');
elem.setAttribute('link', link);
elem.removeAttribute('width');
elem.removeAttribute('height');
elem.removeAttribute('class');
elem.removeAttribute('style');
elem.setAttribute('display','none');
if(link.indexOf('.gif')>0)
{
elem.parentNode.removeChild(elem);
}else{
}
elem.attachEvent('onload',onImageLoaded);
}
};
window.onImageLoaded = function() {
var elem = event.srcElement;
if (elem != null) {
elem.setAttribute('display','block');
}
return false;
};
此外,CSS代码为:
img {width: 100%; border-style:none;text-align:center;}
但是,图像仍然不会显示,直到所有加载。
是的,我试图隐藏图像,直到它完全加载。我感谢第一个选项将满足我的需求。但我不熟悉JavaScript(我是C#开发人员> _ <)。你能给我更多提示吗?谢谢。 – ellic 2012-02-22 13:38:05
插入你的图片标签,像这样: – Stumpy7 2012-02-22 13:50:12
不错,@Stumpy7,我编辑了这个问题。你能告诉我代码是否正确? – ellic 2012-02-22 14:15:53