FROM CACHE - jp_header
このコミュニティはピアツーピアサポートに移行しました。Shopify サポートは今後、このコミュニティへのサービスを提供いたしません。これからもぜひ、他のマーチャントやパートナーとつながり、サポートし合い、経験を共有してください。 当社の行動規範に違反する行動や削除を希望するコンテンツがありましたら、引き続きご報告ください
現在コミュニティを移動しています!7月7日以降、現在のコミュニティは約2週間読み取り専用となります。期間中はコンテンツの閲覧は可能ですが、一時的に新規投稿や返信はできなくなります。詳しくはこちら

【Slick slider】画像が一瞬大きく表示されてしまう原因について

【Slick slider】画像が一瞬大きく表示されてしまう原因について

uru
新規メンバー
4 0 0

Slick sliderが主な原因でCLSの評価が下がっていると考えています。

そのため表題の件について解決策をいただけますと有り難く存じます。

 

現在、下記の記述を追加し、スライダーに使用している画像を読み込み終わるまで非常時にしている状態です。

 

<style>
/* JavaScriptが有効な場合、対象を隠す */
html.enable-javascript .key-slider__wrap{
visibility: hidden;
}
/* 画像すべてを読み終えたら、対象を表示する */
html.enable-javascript.window-load .key-slider__wrap{
visibility: visible;
}
</style>

<script>
(function(){
var html = document.getElementsByTagName('html')||[];
html[0].classList.add('enable-javascript');
window.addEventListener("load", function(){
html[0].classList.add('window-load');
}, false);
})();

$(function(){
$(window).load(function(){
$('.key-slider__wrap').slick({
autoplay: true,
// fade: true,
accessibility: false,
infinite: true,
autoplaySpeed: 500,
centerMode: true,
variableWidth: true,
});
});
});
</script>

 

【教えてほしいこと】

1:ページスピードインサイトのCLSを改善するには、表題について解決すれば良いのか?

2:もしそうであれば、どのように記述を修正したら良いか?

 

slickの実装は他の方が行ったため、自分で一から作り直すことも検討しております。

(slickではなくswiperの方が、サイトが軽くなるのかも悩み中です・・・)

よろしくお願いいたします。

 

2件の返信2

st_mh
Shopify Partner
43 14 13

スライダー画像のサイズが384pxで固定なのであれば、要素に対して高さを設定するのはいかがでしょう。

 

/* SP */
.key-slider__wrap{
  min-height: 102.4vw;
}

/* PC */
.key-slider__wrap{
  min-height: 384px;
}

 

また、スライダーが実行されるまで、エリアが真っ白です。

それが気になるなら、ローディング用gif画像を背景に設置するなど。

※ visibility: hidden;の記述は外してください。

.key-slider__wrap{
  background: url(ローディングgif画像) no-repeat center center;
}

(参考)ローディング画像の素材など

https://www.benricho.org/loading_images/transparent01.html

 

あとは、スライダーの課題は画像の読み込みですね。

サイトの読み込み速度を速めるならば、lazyloadのオプションを追加すると良いです。

$('.key-slider__wrap').slick({
autoplay: true,
// fade: true,
accessibility: false,
infinite: true,
autoplaySpeed: 500,
centerMode: true,
variableWidth: true,
lazyLoad: 'progressive'
});

(参考)

https://tr.you84815.space/slick/settings/lazyLoad.html

 

 仮にswiperに乗り換えるにせよ、こちらでもlazyloadのオプションが使えます。

 

 

uru
新規メンバー
4 0 0

丁寧なご説明ありがとうございます!

教えていただいたことを参考に色々試してみます!