ingenious_motherfucker
@ingenious_motherfucker
Решаю задачки

Почему jQuery скрипт применяется через раз и в стилях элемента не видно активных свойств?

Здравствуйте! Странная штука. Сделал скрипт, чтобы картинка вертикально центрировалась внутри каждого блока с товаром. Для этого сделал скрипт, который залазит в каждый блок товара, высчитывает высоту картинки и делает ей top:50% и margin-top: -высота/2. Почему-то срабатывает через раз. Причем в панели разработчика хром видно в элементах, что прописан стиль, а в правой части панели стиль не видно. А иногда вообще не работает. Почему так может быть?
Код:
$('.product-1 .col-md-3').each(function(){
		var productImgHgt = $(this).find('.img img').height();
		if( productImgHgt != 0 ){
			$(this).find('.img img').css({
					'top': '50%',
					'margin-top': -productImgHgt/2+'px'
			});
		}
	});

Картинки:
62a055df36a14086a7e736998c70323d.png

После перезагрузки страницы:
d7323bf2c2ae44e086b2a08dac3d67f5.png

И так через раз.

И еще больше странностей. Когда сделал условие на проверку if( productImgHgt != 0 )
то теперь работает, но в стилях никогда не отображается, хотя раньше работало через раз, и когда работало то в стилях отображалось
  • Вопрос задан
  • 104 просмотра
Пригласить эксперта
Ответы на вопрос 1
Ankhena
@Ankhena Куратор тега CSS
Нежно люблю верстку
Для расположения по середине по вертикали есть методы попроще, например:
top: 50%;
transform: translateY(-50%);


либо использовать display: flex или table
Ответ написан
Ваш ответ на вопрос

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

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