1

首先,如果这是重复的,请原谅我,但我一直在尝试其他帖子的解决方案,但它们似乎都不适合我。

这就是我想要实现的目标:

我想用文档的当前宽度和高度设置 div 的最小高度和最小宽度。该事件应在文档窗口的每次调整大小时触发。

这是我到目前为止所尝试的:

$(document).ready(function() {

function reset_demensions() {
    doc_height = $(document).height();
    doc_width = $(document).width();
    $(".flicker-div").css("min-width", doc_width + "px");
    $(".flicker-div").css("min-height", doc_height + "px");
    alert("From - Function" + doc_width + "x" + doc_height);

}

    reset_demensions(); 
    $(window).resize(function() {
        reset_demensions();

    });

});

我面临的问题:

第一次加载窗口时,它会显示正确的宽度和高度。但是当我尝试手动调整窗口大小时,会注意到两个问题:

1> 该函数被调用两次,即警告框 2> 捕获的文档高度没有改变。3> 捕获的文档宽度不断快速​​增加,并且值不是垃圾,因为它在每次运行时都是静态的。

测试运行输出:

On Load:
1349x626
On Resize:
1369x3130
1389x15650

我确定我在这里错过了一些东西,可能是非常愚蠢的东西。请帮我解决这个问题。

4

3 回答 3

2

我认为您的错误是您正在捕获DOCUMENT .. 而不是窗口的高度。

您正在更改window尺寸并期望document尺寸发生变化。

更改您的代码以检查$(window).height()$(window).width()

于 2013-09-23T14:57:56.090 回答
1

首先你不需要 + 'px';

刷新后重新加载浏览器时。它应该工作还是?

几天前,由于document.width/document.height,我遇到了同样的问题并认出了它。

是否可以用 window.width/window.height 计算相同的值?

调整窗口大小的每一步都会调用该函数,但您可以添加超时,因此它只会执行一次。--> 超时插件http://benalman.com/projects/jquery-dotimeout-plugin/

于 2013-09-23T15:00:13.560 回答
1

不确定这是否会有所作为,但您不需要将函数定义嵌套在 onready 函数中。它可能对功能/垃圾收集等的范围有一些影响?您可以在 onready 之前安全地定义函数,因为在文档准备好之前不会调用它。还要从它所在的位置取出警报。由于事件触发的速度,这样做导致了我很多浏览器崩溃,并且当您调整窗口大小时它会尝试触发警报!

您可能也想尝试 $(window).width() ,因为这可能会解释您的累积结果,因为您的文档随着您调整 div 的大小而变得越来越大,特别是如果某处涉及填充/边距。

于 2013-09-23T15:05:24.063 回答