在HTML中加载图像之前获取图像高度

时间:2008-09-20 03:03:12

标签: html image

我有一个使用DIV动态创建的表。该表的每一行都有两个图像。我想将div(表示特定行)的高度设置为图像的高度,该高度是该特定行中显示的两个图像中较大的一个。要显示的图像将始终更改,并且它们来自外部服务器。

如何设置div的高度以便我可以放入图像?

7 个答案:

答案 0 :(得分:3)

如果您尝试动态调整表格中连续几个div的大小,最好使用html表格,并将每个图像放在td标记内。这将使tr标签相应地调整每个单元格中的图像。

答案 1 :(得分:3)

  this.img = new Image();
  this.img.src = url;
  alert(this.img.width);

给出宽度

  var img = new Image();
  img.src = url;
  alert(img.width);

犯规..

不知道为什么。

答案 2 :(得分:1)

你可以:

  1. 未指定div的高度,并让它自动展开
  2. 加载图片后:

    document.getElementById(“myDiv”)。height = document.getElementById(“myImage”)。height

答案 3 :(得分:0)

将它们预加载到javascript图像对象中,然后只引用高度和宽度。

可能需要一些聪明的恶魔在所有浏览器中工作......

function getSize(imgSrc){

    var aImg = new Image();

    aImg.src = imgSrc;

    aHeight = newImg.height;
    aWidth = newImg.width;

}

答案 4 :(得分:0)

我们需要更多信息才能非常有用。你可以得到身高和高度通过Javascript(info)加载页面后图像的宽度,然后您可以在加载后调整div的高度。否则,你真的没有运气,因为HTML本身没有任何东西。

如果您使用的是PHP,那么getimagesize()就可以使用,如果您使用PHP动态构建网站,则可以使用它。其他语言也有类似的功能,但我们需要更多信息。

答案 5 :(得分:0)

如果您希望浏览器根据图像的高度进行布局,则在获取图像之前,您需要将该高度发送到某个位置的浏览器。这将需要服务器端的东西。最快的方法是直接插入html。较慢但更优雅的是用< script src =>来获取图像。从javascript生成cgi的特殊位置获取指令的语句。 (速度差异来自网络往返。)

如果你愿意在数据到达后调整大小,那就简单多了。要么拍打图像上的onload处理程序,要么将它们粘贴在正常的dom中(例如实际的表格,尽管你可以使用div和css),然后让布局引擎完成工作。

答案 6 :(得分:0)

此问题已通过多种方式得到解答,您提出了另外一个问题“这不会让用户界面看起来很糟糕吗?”

该问题的答案是肯定的。在大多数情况下,您最好的做法是将div的高度设置为看起来不错的东西,然后将图像缩小到合适的位置。这将使渲染更快,最终产品看起来更好,更专业。

但这只是我自己的看法。我没有经验数据支持这一点。