SnaIP
@SnaIP
Front-end разработчик

Почему как ресайзишь браузер все картинки встают на место?

Есть картинки у которых динамический размер рассчитываются js

Считаю их в

$(window).resize(function() {
	// resize image
	var container = $('#content .row').width();
	var windowWidth = $(window).width();
        ...
       $('#content .item').each(function() {
		$(this).width(itemWidth);
		$(this).height(itemWidth);
	});

}


При загрузке всех фото ставлю таймаут и вызываю событие ресайза

window.onload = function() {
      setTimeout(function() {
		$(window).resize();
	}, 1000);
}


Перезагружаю страничку фотки не выравниваются, стоит только дернуть браузер на 1px т.е. вызвать resize() повторно все становится на места

если поставить setInterval вместо setTimeout, то отработает все, я так понимаю что то просто не успевает посчитаться? и по этому setTimeout не срабатывает?
  • Вопрос задан
  • 222 просмотра
Пригласить эксперта
Ответы на вопрос 1
riky
@riky
Laravel
непонятно откуда у вас берется занчение itemWidth
возможно берется ширина какой то картинки и на тот момент картинка еще не загрузилась поэтому itemWidth не то что хотелось бы.
рекомендую в resize вывести в консоль ее значение.
при setInterval думаю будет заметно как значение было 0 неск раз, а потом станет нормальным
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы