У меня проблема с window.resize. Мой код js/jquery находится здесь
var x = $(window).width();
var y = $(window).height();
var z = $('#card').height();
var a = z + 140; // !!!zmienic gdy zmiana marginesu z gory lub paddingu (100 margin + 20x2 padding)
var b = 1.78 * y;
var c = 1.78 * a;
function updateBodySize(){
x = $(window).width();
y = $(window).height();
z = $('#card').height();
a = z + 140; // !!!zmienic gdy zmiana marginesu z gory lub paddingu (100 margin + 20x2 padding)
b = 1.78 * y;
c = 1.78 * a;
if (c>b) {
if (x>c) {
$('body').css({'background-size': x + 'px auto'});
}
else {
$('body').css({'background-size': 'auto ' + c + 'px'});
}
$('body').css({'height': a + 'px'});
}
else {
if (x>b) {
$('body').css({'background-size': x + 'px auto'});
}
else {
$('body').css({'background-size': 'auto ' + b + 'px'});
}
$('body').css({'height': y + 'px'});
}
}
$(document).ready(updateBodySize()); //kiedy zaladowany
$(window).resize(updateBodySize()); //kiedy zmiana rozmiaru
Комментарии на польском языке, но они не важны. Я хочу запустить функцию updateBodySize при каждом изменении размера браузера, но теперь эта функция запускается только тогда, когда документ готов (так что я знаю, что функция работает правильно) (строка последняя, но одна), и похоже, что последняя строка игнорируется. Неправильно ли эта строка $(window).resize(updateBodySize());
? Или что-то случилось с моей функцией? Я проверил этот код в Chrome 33.
Спасибо, теперь все работает :) Но мне интересно, почему эта функция работала один раз после загрузки страницы, если я поместил результат в '$ (document) .ready();', а не сам по себе. – bartoszka1996
Это происходит (дважды, фактически), когда страница загружается, потому что ваш исходный код дважды вызывает функцию: один раз в '.ready (updateBodySize()) и один раз в' .resize (updateBodySize()) '. Каждый из этих * первых * запускал функцию, * затем * передавал результат функции на метод. –
Хорошо, спасибо за помощь и объяснение – bartoszka1996