这是通过 jQuery 标记的,所以我将使用 jQuery;即使问题正文中没有提到它。
a)听起来您想获取视口(窗口)的高度;可以这样检索:
var height = $(window).height();
如果文档(页面)的高度超过了窗口的高度,并且没有 CSS 属性阻止滚动条的显示,那么滚动条确实是可见的。
if( $(document).height() > $(window).height() )
b)这会有点棘手,从某种意义上说,我想到的唯一方法是查询每个 DOM 元素。这不是一个优雅的解决方案;事实上,如果你真的必须这样做,我会要求你重新考虑你的方法。就是说……出于好奇……
如果您正在寻找最大元素的最大高度,那么这将起作用:
// Get height of largest element.
var max_height = 0;
$('*').each( function(){
// skip <html> and <body>
if( ( $(this).get(0) == $('body').get(0) ) || ( $(this).get(0) == $('html').get(0) ) )
return;
var current_height = $(this).height();
if( current_height > max_height )
max_height = current_height;
});
例如,在此页面上运行...
> console.log( max_height );
570
但是,我不确定您是否想要所有组合元素的最大高度。在这种情况下,我们显然需要将所有元素相加,但有一个明显的问题:元素是嵌套的!
如果这是您想要的,那么通过使用.children()
我们可以迭代作为您的包含元素/主体的直接子元素的元素的长度。
// Get height of all combined elements
var combined_height = 0;
$('body').each( function(){ // replace with containing element?
combined_height = combined_height + jQuery(this).height();
});
例如,在此页面上运行它:
> console.log(combined_height);
2176