javascript - 我将如何编写 jQuery 脚本来汇总当前显示的 div 的高度?

标签 javascript jquery html css

我的 div 经常在显示和不显示之间切换。这些div也在不断改变高度。它们被放置在一个名为 Panel 的 div 中。始终显示面板并以 600 的设置高度开始。

我正在尝试编写一个 jQuery 脚本,该脚本会将 Panel 中当前显示的 div 的高度相加,并检查显示的 div 的高度相加是否大于 600px。

如果总数大于 600,则面板高度将设置为自动。

我无法弄清楚这样做的逻辑。

现在我有:

function CalculateHeightTotal(){
        if(
            $('#Div1').height() +
            $('#Div2').height() +
            $('#Div3').height() +
            $('#Div4').height() +
            $('#Div5').height() +
            $('#Div6').height() +
            $('#Div7').height()   
            > 600 ) { 
                      $('#Panel').css('height','auto'); 
                    }  
}

但这样做的问题是,因为当时可能不会显示某些 Div,所以不应该考虑这些 Div 的高度。

因此,该代码不是解决方案。如果有人可以提供见解,请做...

(抱歉奇怪的格式。我是 jQuery 的新手。)

最佳答案

假设包装 div 有 id parentDiv 并且每个内部 div 都有一个类 innerDiv,用 is(':visible') 选择每个可见的内部 div 选择器并计算它的高度。

然后,将每个高度添加到一个变量中,比方说 h

var h = 0; 
$('#parentDiv').find('.innerDiv').is(':visible').each(function() {
   h += parseFloat($(this).outerHeight());
});

更新

function CalculateHeightTotal(){
    var h = 0; 
    $('#parentDiv').find('.innerDiv').is(':visible').each(function() {
       h += parseFloat($(this).outerHeight());
    });
    if(h > 600 ) { 
       $('#Panel').css('height','auto'); 
    }  
}

关于javascript - 我将如何编写 jQuery 脚本来汇总当前显示的 div 的高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30101445/

相关文章:

javascript - 为什么 gulp-uglify 不修改我的变量名?

javascript - XMLhttprequest 不调用 PHP 脚本

javascript - 如何在没有主体滚动条的情况下仅使用整页

javascript - 在 bootstrap 中达到 col 级别时更改文本对齐方式

javascript - 为什么我的有效 kml 在加载到谷歌地图时显示为 "INVALID_DOCUMENT"

JavaScript - 模块模式 - 添加 div 的问题

javascript - 完整的 Javascript Ajax php 混淆

html - Bootstrap/Jasny "offcanvas"侧边栏菜单卡住页面内容(即防止滚动)

python - 认证Django

jquery - 如何使用 jQuery 获取进度条的当前值?