你能将.resize()绑定到$(document)而不是$(window)吗?

时间:2012-01-23 20:30:02

标签: javascript jquery html css

我想知道$(document).resize()是否应该有意义?

问题在于,当文档变大时(即由于某种原因导致div扩展),文档的高度会发生变化。我想拉伸我的背景图像,以便文档的添加区域不会是空白。这样做的最佳方式是什么?

基本上,有没有办法在文档高度发生变化时收到通知?

要清楚,我不希望我的图像重复。

4 个答案:

答案 0 :(得分:7)

您可以使用CSS执行此操作:

body {
    background-image: url(yourImage.png);
    background-size: cover;
}

background-sizesupported by all modern browsers

cover属性将使图像尽可能小,但仍然完全覆盖元素。它保持纵横比,并在必要时进行裁剪。

答案 1 :(得分:2)

简而言之,是的,$(document).resize()将检测文档大小的变化。

答案 2 :(得分:1)

您可以加入标准document.resize事件。

一种常见的技术是检查DOM树何时被修改,从而可能更改文档高度,然后调整您想在其中调整的任何内容:how to detect document size change in jquery。请注意,以表现为导向可能不是一件好事。

Firefox公开了一个事件Detecting document width and height changes,但只公开了它的FF。

最好的办法是使用一种逐渐变细的封面图像,并使用最终颜色作为文档的背景颜色。它可以在看似图像继续但不使用图像的情况下为您提供此效果。一个很好的例子是twitter

答案 3 :(得分:0)

尝试 DOMSubtreeModified 事件:

$(document).on('DOMSubtreeModified', function() {
    ...
});