我有一个javascript繁重的应用程序,其中包含自动完成下拉菜单和标签等小部件。有时,当下拉列表出现和消失,或者在标签之间切换时,它会更改文档的高度。如果滚动条出现并快速消失,这可能会引起烦恼,因为它会移动页面。我想检测一个页面何时改变它的高度,所以我可以将高度固定到目前为止的最大值,这样如果滚动条出现它将不会在一秒后消失。有什么建议吗?
更新:onresize将无效,因为这是视口/窗口大小的变化 - 我想要更改文档的长度。我不知道手表功能,看起来它至少可以用于FF,但IE不支持它。
答案 0 :(得分:2)
我相信这个问题已在stackoverflow上得到解答: Detect Document Height Change
基本上,您必须存储当前文档高度,并通过timeoutcall
继续检查更改这里要关注的元素是document.body.clientHeight(或者在jquery $(document).height())
答案 1 :(得分:0)
我认为你可以陷入“onresize”事件
答案 2 :(得分:-1)
一个想法是在clientHeight属性上使用watch()方法:
document.body.watch("clientHeight", function(property, oldHeight, newHeight) {
// what you want to do when the height changes
});
只要指定的属性发生更改,您指定的函数就会执行。在任何时候你都可以使用unwatch()方法让它停止。
答案 3 :(得分:-1)
您可以使用jquery来调整事件大小以捕获窗口大小的变化,如下所示:
$(window).resize(function(){
// your code to check sizes and take action
}
);
或者,您可以跟踪文档中的更改(未测试)
$(document).resize(function(){
// your code to check sizes and take action
}
);