совокупный сдвиг макета и jquery

Я использую materialize css 0.100.2 и просматриваю CLS на своем веб-сайте. Я определил, что проблема заключается в следующем фрагменте кода:

      $(window).resize(function() {
      $('.lt-slider').height($(window).height() + 15).css('position', 'relative');
  });

С этим кодом мой CLS равен 1,13, если я удалю его 0,039, но я потеряю кусок экрана, так что контент исчезнет за ползунком, есть ли решение, чтобы сохранить контент и уменьшить CLS.

2 ответа

Я нашел это опубликованное Джеральдом:

Сначала создайте класс antiCls и добавьте его в свой собственный CSS (в элементе HEAD) следующим образом:

      .antiCls { 
    visibility: hidden;
}

затем используйте этот бит javascript:

      var cls = document.getElementsByClassName('antiCls'),
    i = cls.length;
    
for (i = 0; i < cls.length; i++) {
    cls[i].style.visibility = "visible";
    } 

затем я добавил класс к каждому элементу, на который повлияло правило «Избегайте больших сдвигов макета» в lighthouse, вам может потребоваться протестировать каждый элемент, к которому применен класс antiCls, но он работал

Я немного углубился в свою проблему, насколько я могу судить, это связано с материализацией CSS и версией jquery. Я пробовал .097 0.100.2 и 1.00, все с теми же результатами, CLS составляет 0.4, если я использую jquery 2.2.4, но если я использую jquery 3 и выше, CLS стреляет до 1.4, но если я использую материализацию CSS версии 1 и использую javascript, CLS падает, и я могу использовать приведенное выше, чтобы уменьшить до 0

Другие вопросы по тегам