@someden

Что происходит с Safari при вычислении высоты?

Обнаружил странную особенность Safari, если задавать высоту элемента и потом запросить ее, то происходит какая-то магия:
$('.js--post-grid').height(400);
console.log($('.js--post-grid').first().height());    // = 0
console.log($('.js--post-grid').last().height());     // = 0
setTimeout(function(){
  console.log($('.js--post-grid').first().height());  // = 23
},1);
setTimeout(function(){
	console.log($('.js--post-grid').first().height());  // = 23
},2);
setTimeout(function(){
  console.log($('.js--post-grid').first().height());  // = 23
},10);
setTimeout(function(){
  console.log($('.js--post-grid').first().height());  // = 201
},100);
setTimeout(function(){
  console.log($('.js--post-grid').first().height());  // = 400
},1000);


Высота зависит от времени в которое ее запросили, как так?

Пример, смотрите консоль.
Проверял в Safari 9.1 и Safari 9.1.1
  • Вопрос задан
  • 449 просмотров
Решения вопроса 1
alsopub
@alsopub
Если заменить time = .4s на time = 0s то магия пропадает, значит в Сафари выдается актуальная высота.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы