在脚本之前加载图像

时间:2011-11-25 00:03:27

标签: jquery image load

我有一个脚本可以调整每个页面的背景图像大小。碰巧有时候机器和具有大量内容的页面(其他图像)的背景图像会变得拉长。

最初我有这个

$(document).ready(function() {
    ...code for resizing the image...
});

并且我决定在图像(带有id img_bg)之后执行的代码被加载,所以:

$("#img_bg").ready(function() {
  ...code for resizing the image...
});

我得到了更好的结果,但仍然不如我想要的完美。

有没有人有其他想法?

由于

2 个答案:

答案 0 :(得分:2)

根据jquery文档[1] .ready()实际上只在元素完全加载后执行。 所以你的问题可能是,在调整大小脚本完成它的工作之前有一个ceratin时间。 (特别是如果要同时处理其他事情)解决这个问题的一种方法是简单地隐藏图像直到调整大小完成。 在缩放方法的末尾使用 show [2]函数,并为此目的在{c}中为display="none"初始设置#img_bg

但是你应该考虑整个设置。如果你只使用较小的图像,加载一个大图像然后用javascript来解决它是绝对不聪明的。那么最初最好有一个较小的(为了节省带宽,从而提高加载速度)

另一个想法是,最有可能通过巧妙地使用一些css而不是javascript来实现这种调整大小。但是,你必须提供一些关于你的脚本实际工作方式以及它正在做什么的更多细节。

[1] http://api.jquery.com/ready/

[2] http://api.jquery.com/show/

答案 1 :(得分:0)

如果你在你的div / html控件之后立即放置javascript代码,那么当控件准备就绪时它仍然会执行,你不需要“就绪”语句。

document.ready只是表示所有HTML都已加载,您可以使用dom执行任何操作,但您可以在整个页面准备好之前修改元素。