Как вернуть значение $ (window) .resize () - PullRequest
0 голосов
/ 04 июня 2019

Я хотел бы получить определенную высоту и добавить через .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 Ответ

2 голосов
/ 04 июня 2019

Я понимаю, что вы пытаетесь сделать, но, как сказал Таплар в своем комментарии, эта строка:

$('.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, возможно, не был полностью обработан и обработан до того, как вы проверите высоту.Перед проверкой убедитесь, что все готово для измерения.

...