首先请原谅我,如果这是重复,但我一直在尝试其他帖子的解决方案,但它们似乎都不适合我。
这就是我想要实现的目标:
我想用文档的当前宽度和高度设置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 GT;捕获的文档宽度不断增加,并且值不是垃圾,因为每次运行都是静态的。
测试运行OUTPUT:
On Load:
1349x626
On Resize:
1369x3130
1389x15650
我相信我在这里错过了一些东西,可能是非常愚蠢的东西。请帮我解决这个问题。
答案 0 :(得分:2)
我认为你的错误在于你正在捕捉 DOCUMENT 的高度而不是窗口。
您要更改window
尺寸并希望更改document
尺寸。
更改您的代码以检查$(window).height()
和$(window).width()
答案 1 :(得分:1)
首先你不需要+'px';
刷新后重新加载浏览器。它应该工作还是?
几天前,由于document.width / document.height,我遇到了同样的问题并认出了它。
是否可以使用window.width / window.height计算相同的内容?
在调整窗口大小的每一步调用该函数,但是你可以添加超时,因此它只会被执行一次。 - >超时插件http://benalman.com/projects/jquery-dotimeout-plugin/
答案 2 :(得分:1)
不确定这是否会产生影响,但您不需要将您的函数定义嵌套在onready函数中。它可能对函数/垃圾收集的范围等有一些影响?您可以在onready之前安全地定义函数,因为在文档准备好之前不会调用它。同时从它的位置取出警报。这样做会导致我很多浏览器崩溃,因为事件触发的速度很快,并且当您调整窗口大小时它会尝试触发警报!
您可能也想尝试$(window).width(),因为这可能会解释您的累积结果,因为您调整div时文档会变大,尤其是在某处有填充/边距的情况下。