【发布时间】:2012-10-30 03:01:44
【问题描述】:
所以我试图找到我的图像的高度,然后添加一个上边距,这使我能够强加一个垂直中心。
我正在运行这段代码,在 F5 刷新 时我得到了正确的高度,但在 CTRL+F5 刷新 时它给了我一个小得多的高度。我有点假设这是一个加载/延迟的事情,但我正在使用准备好的文档,所以不确定发生了什么。我尝试使用 php 函数,但它极大地减慢了网站速度,因此必须坚持使用 jquery。
你可以看到它在这里工作。 www.mzillustration.com
jQuery(document).ready(function() {
if (jQuery('.imagedisplay').length != 0) {
jQuery('.imagedisplay').each(function(){
var imgheight = jQuery(this).find('img').height();
var topmarg = ((240 - imgheight) / 2) ;
jQuery(this).find('img').css({'margin-top':topmarg+'px'});
});
});
非常感谢任何想法/帮助/解释。 谢谢
【问题讨论】:
-
您必须等到图像加载完毕才能获得它的高度。 Ctrl+F5 刷新缓存。这就是为什么按 F5 使它起作用,而 Ctrl+F5 不起作用。当图像被缓存时,它通常会立即有一个高度。
-
如果代码在图像加载之前运行,您将得到 0。通过使用 CTRL + F5,您要求浏览器再次获取图像而不使用缓存版本,因此存在差异。您应该尝试使用
img元素的加载事件来实现解决方案。 -
不能再同意 Kevin B 的观点。
标签: javascript jquery