如何返回$(window).resize()的值

时间:2019-06-04 20:35:20

标签: jquery function dom

我想获得一定的高度,然后通过.css()添加到DOM中的另一个元素。 (希望我在这种情况下使用DOM一词)。 我以为我可以通过一个函数来获取值,在该函数中先计算高度值,然后返回。

但是我想这个值不会在函数外部返回,因为我在console.log控制台中看不到,但是我猜我在代码中有一个错误,因为我对jQuery很陌生。

function heightBackgroundGap() {
    $(window).resize(function() {
        var backgroundGap = $('.start').height() - $('.clip-path-container').width();
        return backgroundGap;
    });
}

$('.background-gap').css('height', heightBackgroundGap);

1 个答案:

答案 0 :(得分:2)

我了解您要执行的操作,但是正如塔普拉(Taplar)在其评论中所说的,这一行:

$('.background-gap').css('height', heightBackgroundGap);

在您的代码中仅执行一次。它设置一个window.resize事件,该事件在每次调整窗口大小时都运行,但实际上并没有重新设置CSS。您想要这样的东西:

$(document).ready(function() {
 $(window).resize(function() {
        var backgroundGap = $('.start').height() - $('.clip-path-container').width();
        $('.background-gap').css('height', backgroundGap );
    });
});

这将设置一个函数,该函数将在每次调整窗口大小时运行,并专门将CSS属性设置为其一部分。我还将它放在document.ready事件中。您应该始终将这样的项目放入document.ready中,因为在检查高度之前,CSS可能尚未完全处理和呈现。在检查之前,请确保已准备好进行测量。