我想加载html,然后获得真实的图像高度。
$("#cover").html(stuff); //this has the image inside it
$(function(){
console.log($("#cover img").height()); //sometimes it's 0
});
由于某种原因,高度有时为0.可能是因为图像尚未完全加载,而JQuery将其视为0?如果是这样,我该如何克服这一点?加载图像时是否有回调或其他内容?
答案 0 :(得分:3)
您可以使用jQuery的.load()方法
$('#cover').html(stuff);
$('#cover img').load(function () {
console.log($(this).height());
};
答案 1 :(得分:1)
为什么console.log里面有一个匿名函数?你试过这个吗?
$("#cover").html(stuff); //this has the image inside it
console.log($("#cover img").height());
答案 2 :(得分:0)
//locate the image(s)
$("#cover img").each(function(){
//Build a new Image Object outside the DOM
//that way, CSS won't affect it
var img = new Image();
//add a callback when loaded
img.onload = function(){
//your width and height
//img.width
//img.height
}
//use the image src to load
//use attr() to resolve path issues across browsers
img.src = $(this).attr('src');
});
答案 3 :(得分:0)
尝试使用我们可以利用的load method
方法,使其按照我们想要的方式工作。
我们现在遇到的问题是,在Webkit浏览器中,jQuery代码在DOM准备就绪并且在映像加载之前就已准备好DOM时运行。所以代码运行但由于没有图像可以得到宽度,我们得到图像的宽度为0。我们可以使用load方法使代码等到窗口在运行之前完全加载。
$(window).load(function() {
console.log($("#cover img").height());
});
答案 4 :(得分:0)
尝试使用attr()获取高度: -
$("#yourElemengtID").attr('height')
答案 5 :(得分:0)
这是我用过的一小段代码,希望这能帮到你 在鼠标处于调用此功能时显示的图像上
function MouseIn()
{
var src;
//to get original image size
var img =$(this);// displayed image
var theImage = new Image();// create a cache image
var imgsource =img.attr("src");// take the src of displayed image
theImage.src = imgsource;// give cached image the source of displayed image
var original_height = theImage.height// take height of image from the source
var original_width = theImage.width;//take width of image from the source
// to get the displayed image size
var Image_displaysize_width= img.width();
var Image_displaysize_height= img.height();
}
答案 6 :(得分:0)
你不想做这样的事吗?
jQuery("#myImg")[0].naturalHeight
在可能的情况下,最好还是不要使用jQuery的开销。
document.getElementById('myImg').naturalHeight