0

我需要根据屏幕的高度为元素分配一个高度。我的内容超过了屏幕折叠,所以我不能使用

$(window).height();

有没有办法计算打开窗口可见部分的高度?

4

3 回答 3

3

另一种方法是这样的:

var height = window.innerHeight || document.documentElement.clientHeight || getElementsByTagName('body')[0].clientHeight;

这将基于浏览器支持回退

于 2012-05-01T19:18:13.170 回答
2

要获得元素的可见高度,您将从窗口offetTop的 中减去元素的。height

var elTop = $("#element").offset().top;
var winHeight = $(window).height();
var elVisibleHeight = winHeight - elTop;

如果elVisibleHeight < 0那么该元素位于屏幕折叠下方并且不可见。如果您需要跟踪元素的位置,则需要在 window 上更新它scroll

更新

我用该理论的一个工作示例创建了一个小提琴。显然你可以缩短它,我把它写得很冗长,所以更清楚地知道发生了什么。

示例小提琴

于 2012-05-01T19:15:02.670 回答
2

这将向您显示文档或窗口高度的差异。

http://jsfiddle.net/9YFwx/

于 2012-05-01T19:25:12.193 回答