使用jQuery将width和height属性写入图像标记

时间:2010-12-22 16:23:57

标签: jquery html

嘿伙计们,我有一个页面,里面有很多图片。这些图像不包括宽度或高度属性。不幸的是,我没有能力改变HTML中图像的编码方式。

问题是,我使用其他页面的锚点链接到页面的各个部分。当页面加载时,它会跳转到该锚点。但是,由于浏览器无法正确确定图像的高度,因此当图像开始填充时,锚点会进一步向下跳跃。

所以,我在想,jQuery可以确定图像的高度,并在特定div中的所有图像标签上附加图像的宽度和高度吗?或者,这个问题有更优雅的解决方案吗?让我知道你的想法!

3 个答案:

答案 0 :(得分:0)

在图像加载之前,任何客户端都无法知道图像的尺寸 - 这时浏览器将调整img元素的大小。

答案 1 :(得分:0)

jQuery可以将宽度/高度属性写入图像标签,但它需要浏览器知道它们的宽度和高度 - 要知道这些,浏览器必须已经加载了足够的每个图像来获取这些统计数据 - 所以不是很有用在你的情况下。由于您无法更改HTML或将时空连续性弯曲到您的意愿,我知道您的问题没有解决方案。

但等等,有希望! 如果要在文档加载后滚动到锚点,则需要scrollTo函数(请参阅http://plugins.jquery.com/project/ScrollTo)。您必须使用onload处理程序来确保加载所有图像:

$(window).load(function () {
  // scroll
});

答案 2 :(得分:0)

我真的不明白你的意思是“当图像开始填充时,锚点会越来越跳跃”但据我所知,你可以通过在超链接的末尾包含#elementId来显示pag的特定部分。如果我错了,请纠正我,以便我可以编辑我的答案。

后续-1:

$(document).ready(...some code..)中的所有命令仅在页面加载后触发。

后续-2:

$(document).ready(function(){
 var id = window.location.pathname.split("#");
 $('html,body').animate({scrollTop: $("#"+id).offset().top}, 100);
});