2010-09-26 56 views
0

我有一个加载大量相当大的图像(大约200个100Kb图像[大约600 x 400像素])的页面。图像的尺寸与加载时和加载后不同

我想要做的是操纵照片,如果它是在肖像,而不是风景。

我遇到的问题是,当我使用JavaScript来抓取肖像照片的属性时,它的加载,高度明显低于它应该是,并且宽度比它应该更大。具体而言,75 x 100图像被认为是100 x 16.因此,当该功能贯穿此图像时,图像被认为是风景,而不是人像,并跳过。

我很难识别问题,因为该属性在加载完成后显示为75 x 100像素的图像。

有没有办法解决这个问题?或在所有图像加载后运行该功能?

回答

0

在页面元素加载完成后运行javascript总是一个好主意。我通常这样做jQuery的,就像这样:

$(function(){ 
    //code to run after load goes here 
}); 

否则,您可以尝试修改body标签,并给它一个onload属性,如:

<body onload="myFunction();" > 
2

运行它加载后的功能,你会做这样的:

使用DOM专门

var newImg = document.createElement('img'); 
newImg.src = "theImage.png"; 
newImg.alt = "Always specify an alternate text for accessibility, even if left blank"; 
newImg.onload = function() { 
    //Image manipulation 
}; 
galleryNode.appendChild(newImg); //Replace galleryNode with the parent element of your image. 

使用的innerHTML

galleryNode.innerHTML += "<img src='theImage.png' alt='' id='newImage1'/>"; 
var newImg = document.getElementById('newImage1'); 
newImg.onload = function() { 
    //Image manipulation 
}; 

使用jQuery

$('.gallery img').live('load',function() { 
    //Image manipulation 
}); 
相关问题