如何检测页面高度何时发生变化?

时间:2008-12-11 00:11:16

标签: javascript html css

我有一个javascript繁重的应用程序,其中包含自动完成下拉菜单和标签等小部件。有时,当下拉列表出现和消失,或者在标签之间切换时,它会更改文档的高度。如果滚动条出现并快速消失,这可能会引起烦恼,因为它会移动页面。我想检测一个页面何时改变它的高度,所以我可以将高度固定到目前为止的最大值,这样如果滚动条出现它将不会在一秒后消失。有什么建议吗?

更新:onresize将无效,因为这是视口/窗口大小的变化 - 我想要更改文档的长度。我不知道手表功能,看起来它至少可以用于FF,但IE不支持它。

4 个答案:

答案 0 :(得分:2)

我相信这个问题已在stackoverflow上得到解答: Detect Document Height Change

基本上,您必须存储当前文档高度,并通过timeoutcall

继续检查更改

这里要关注的元素是document.body.clientHeight(或者在jquery $(document).height())

答案 1 :(得分:0)

我认为你可以陷入“onresize”事件

here is a link to the w3schools.com description

答案 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
  }
);