математическая операция jQuery для $ (window) .height (): работает, если деление не работает, если вычитание

0

Я хочу рассчитать размер элемента в зависимости от размера окна.

Этот код работает:

var photoHeight = function() {
    return {
        'height' : ($(window).height() / 15) + 'px'
    }
}

$(document).ready(function() {
    var $obj = $('#photo');
        var photoCss = photoHeight();
        $obj.css( photoCss );
    $(window).resize(function () {
        $obj.css( photoCss );
    });
});

Но мне нужно вычесть вместо деления. Если я изменю

'height' : ($(window).height() / 15) + 'px'

в

'height' : ($(window).height() - 15) + 'px'

Значение кажется "неопределенным" и не применяется.css.

Полный расчет должен быть примерно таким:

'height' : ($(window).height() - $('#page-header').outerHeight() - $('#page-footer').outerHeight() - 50) + 'px'
  • 0
    Попробуйте Math.round ($ (окно) .height () / 15) + 'px'
Теги:

1 ответ

0

Вам не нужна photoHeight() (это проще без):

$(document).ready(function() {
    var $obj = $('#photo');
    $obj.css("height", $(window).height() / 15);
    $(window).resize(function () {
        $obj.css("height", $(window).height() / 15);
    });
});

Также обратите внимание: если вы установите для переменной photoCSS значение photoHeight(), она не изменится, даже если photoCSS photoHeight() изменится. Если вы хотите использовать функцию, перейдите к чему-то вроде $obj.css(photoHeight());

Ещё вопросы

Сообщество Overcoder
Наверх
Меню