Есть список товаров (картинка, цена и название)
Сетка с товарами адаптивная по 4 шт в ряд через calc(100% / 4)
У картинок width:100%
никаких min-height у меня нет, потому что я не могу знать заранее высоту, она всегда меняется.
Фиксировать высоту картинок я не могу, потому что заранее не знаю какой будет размер, высота подстаривается сама, на основе ширины.
Проблема:
Пользователь заходит на сайти у него грузится 20 картинок,
Высотка блока с картинкой изначально 0px
И блоки как бы сплюснуты.
Но как картинка подгружается, блок обретает нормальую высотку и происходит эффект "Подергивания"
как избавится от этого косяка?
Понимаю что если задать фиксированную высоту то все бы стало норм, но в моей адаптивности этого сделать нельзя.
webe, для прыганья картинки ничего не изменит, но хоть выглядеть по дурацки не будет. Ладно бы еще не делилось...
От прыганья избавит заставка пока не загрузятся все картинки или получение их размеров и подстановка в код в атрибуты. Возможно еще уменьшение веса картинок, чересстрочная развёртка. Но это не уберет скачки совсем, а лишь увеличит количество пользователей, которые их не заметят.
Понимаю что если задать фиксированную высоту то все бы стало норм, но в моей адаптивности этого сделать нельзя.
Ankhena, там еще отступы расчитываются:
width: calc((100% / 2) - 20px);
Я раньше высчитывал вручную, получался полный бородак как раз таки, сейчас более менее смотрится)
Цепляемся за событие загрузки фото и анимируем. Есть правда проблема с анимацией height: auto, но есть волшебный поджопник: https://jsfiddle.net/wokster/d32yeeze/