Cocoonフォーラム

サイト内検索
書き込みの前に以下の3点をご確認ください。
  1. 1つのトピックにつき1つの質問を書き込んでください
  2. 不具合・カスタマイズ対象ページのURLを提示高速化を無効にしてください
  3. 該当部分のキャプチャ・環境情報とともに書き込んでいただけると助かります

何を書き込んだら良いか分からない場合は、以下のテンプレートをコピペしてご利用ください。

不具合・カスタマイズ対象ページのURL:

相談内容:

不具合の発生手順:

解決のために試したこと:

※文字だけでは正しく伝わらない可能性があるため、スクショ画像の添付もお願いします。
※高速化設定をしている場合は無効にしてください。
環境情報:

※↑こちらに「Cocoon設定 → テーマ情報」にある「環境情報」を貼り付けてください。

環境情報の取得方法はこちら。
https://wp-cocoon.com/theme-report/
高速化設定を無効にするにはこちら。
https://wp-cocoon.com/theme-trouble/

フォーラム利用ガイドリンク

  1. フォーラムガイドライン
  2. よくある質問と答え(FAQ)
  3. サポート対象外のケース
  4. 原因不明の不具合用トラブルシューティング
  5. トピックにHTMLを貼り付ける方法(推奨ツール:notepad.pw
  6. 真っ白画面でのエラーメッセージの確認方法
  7. ブラウザ環境チェックツール
  8. Cocoonカスタマイズ依頼

フォーラム質問後、問題等が解決した場合は結果を書き込んでいただけると幸いです。同様の問題で調べている方には、結果が一番気になる部分となります。

カルーセルのCLSを改善したい
 
共有:
通知
すべてクリア

カルーセルのCLSを改善したい

13 投稿
4 ユーザー
9 Reactions
3,980 表示
(@ちいラボ)
Active Member
結合: 4年前
投稿: 5
トピックスターター  

こんにちは。いつもお世話になっております(*^^*)

トップページにカルーセルを表示しているのですが、記事・サムネイル取得のタイムラグでCLSが低くなってしまいます。

事前にカルーセル要素の高さを指定したいのですが、条件が煩雑そうなのとテーマ更新時が心配で、作業を躊躇しています。

すでに解決されている事例や今後テーマとして解決する予定はあれば助かります。

ページ: https://chiilabo.com/

PageSpeedInsightでの結果はこちら。

https://developers.google.com/speed/pagespeed/insights/?url=https%3A%2F%2Fchiilabo.com%2F&tab=mobile&hl=ja

 


   
iwamoto and taichi reacted
引用
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17398
 

試しに改善版をアップしてみました(※あくまで試作版なので完全な状態ではないかもしれません。採用するかもまだ未定です)。
------------------------------------------------
https://github.com/yhira/cocoon
開発中の最新ファイルをダウンロードする場合は、上記ページのダウンロードボタンからzipファイルをダウンロードしてください。

FTPでのアップデート方法はこちら。
https://wp-cocoon.com/ftp-update/
------------------------------------------------
上記でアップデート後、PageSpeed InsightsをするとCLSのスコアは幾つになりますでしょうか。

僕の環境では、0.1強ぐらいには変わったようです。


   
iwamoto reacted
返信引用
(@ちいラボ)
Active Member
結合: 4年前
投稿: 5
トピックスターター  

わいひらさん、早速の対応ありがとうございます。

開発版を適用してみました。

こちらのサイトでも、CLSの数値が0.011に大幅改善しました。

ありがとうございます!

結果を添付します。


   
返信引用
ろこ
(@lococo)
Prominent Member Registered
結合: 7年前
投稿: 830
 

試しに改善版をアップしてみました(※あくまで試作版なので完全な状態ではないかもしれません。採用するかもまだ未定です)。

試作版について、heightを196pxで固定してしまうのは様々な不具合の原因になり得ると思います。

 

カルーセル内の個々のカードリンクは縦幅が決まっているわけではないので、

  • モバイルでの表示(レスポンシブ)
  • サムネイル画像の縦横比率
  • 記事タイトルの長さ

なども確認しないといけません。


   
iwamoto and taichi reacted
返信引用
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17398
 

ご確認ありがとうございます。

投稿者:: @lococo

試作版について、heightを196pxで固定してしまうのは様々な不具合の原因になり得ると思います。

もちろん、それは承知していて、いつもだったら書かないような以下のようなことを書きました。

試しに改善版をアップしてみました(※あくまで試作版なので完全な状態ではないかもしれません。採用するかもまだ未定です)。

自分の環境以外でも、有効な手段かどうか確認したくて。
あとは、これをどう落とし込むかなんですけど、今のところこれだという方法は思いついていません(これが思いついてないので現在の仕様になっているともいえます)。
とりあえず、GitHubは一旦Revertしておくつもりです。

とりあえず今後、考えてみます。


   
返信引用
ろこ
(@lococo)
Prominent Member Registered
結合: 7年前
投稿: 830
 

自分の環境以外でも、有効な手段かどうか確認したくて。

昨日はざっとコードを見ただけで投稿したので説明不足だったかもしれませんが、以下で説明したような項目またはCLSに関するドキュメントを確認していただければ分かる通り、CLS対策としては誤った修正方法だと思います。

カルーセル内の個々のカードリンクは縦幅が決まっているわけではないので、

  • モバイルでの表示(レスポンシブ)
  • サムネイル画像の縦横比率
  • 記事タイトルの長さ

なども確認しないといけません。

https://github.com/yhira/cocoon/commit/4a001dfa192dda20c1082174cc060618e53b3f8e

時点での修正ではまだカルーセル前後の正しいCLS数値を測定するのは困難なのと、fadeInに対して

.carousel-in {
  display: none;
}

とでもした後にカードの高さを固定するのに詰まります。

 

カルーセルにおけるCLSの問題は、このfadeInによってCSSのdisplayプロパティの値をnone⇒blockにしている点なので、CLSの数値を優先させるならば、表示時の高さが保持できるCSSアニメーション等で書き換えるのが正しい対策ではないでしょうか。

実際に、修正前の状態で

.carousel {
  display: none;
}

を削除し、

$('.carousel').fadeIn(1000);

の動作がなくなるだけで数値的には改善するはずです。


   
わいひら and iwamoto reacted
返信引用
(@iwamoto)
New Member Registered
結合: 4年前
投稿: 1
 

ちいラボ氏と同じように、カルーセルのCLSに悩まされておりました。

ろこ氏の意見に同意でなるほどと思いました。

改善されることを願っております。


   
返信引用
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17398
 

確かに。元々はそういう仕様だったんですよね。
ただ、画面表示時に添付画像のような表示状態になるのが嫌だと言われて、現在も仕様にしたんでした。
計測してみたら数値はかなり改善しているので、その方向に戻してみようと思います。
ありがとうございます。


   
返信引用
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17398
 

GitHubの方も変更しておきました。
https://github.com/yhira/cocoon


   
返信引用
ろこ
(@lococo)
Prominent Member Registered
結合: 7年前
投稿: 830
 

確認しました。

ただ、画面表示時に添付画像のような表示状態になるのが嫌だと言われて、現在も仕様にしたんでした。

表示時にフェードインのようなエフェクトが必要なのであれば、前回の返信でも書いたようにCSSアニメーション等で表現するのがよいのではないでしょうか。

.carousel {
  animation: fade-in 1.5s ease-in-out;
}

@keyframes fade-in {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

飽くまでサンプルですが、このような方法だと高さの位置ズレはなくなるので、CLSの数値が著しく悪化することはないと思います。


   
わいひら reacted
返信引用
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17398
 

アニメーションは過去に試してみたのですが、添付画像のようになってしまって前回の仕様にした感じです(環境はWindowsのChrome)。
アニメーションの時間を仮に、3秒とか長くしてもあまり変化なくて ? 


   
返信引用
ろこ
(@lococo)
Prominent Member Registered
結合: 7年前
投稿: 830
 

私はカルーセル機能は使用しておらず、ローカルにある同じ条件下の開発環境でテストを行いましたが、添付画像のような現象は再現できませんでした。

上記のコードは飽くまでサンプルなので、CSSのみなら

.carousel {
  opacity: 0;
  animation: fade-in 0.5s ease-out 1s forwards;
}

@keyframes fade-in {
  100% {
    opacity: 1;
  }
}

のように実行タイミングを遅らせたアニメーションや、JSで

$(window).load(function(){
  $('#carousel').addClass('loaded');
});

読み込み後にカルーセル表示を実行するようにし、

.carousel {
  opacity: 0;
  transition: all 1s ease-out;
}

.carousel.loaded {
  opacity: 1;
}

クラスの追加前後で表示を変えるアニメーションなどは試してみましたか?


   
わいひら reacted
返信引用
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17398
 

そこまではやってませんでした。
読み込んだ後にやるというのは、ほんと、その通りですよね;
開発版にも適用しておきました。
今までで、一番綺麗な表示になったと想います。
ありがとうございます!!


   
返信引用
共有:

問題の解決に至った場合には、トピック冒頭の「解決済み」をクリックしていただけますと幸いです。

また、有用な回答があった場合は返信右下にある「いいね!」もご活用ください。回答者の励みになります。

「いいね!」機能はフォーラム登録者のみが利用できる機能です。

CC BY-ND 2.1)準じていれば(リンクを貼っていただければ)転載も自由です。カスタマイズ記事を書く際にコード等をコピペ利用していただいて構いません。

フォーラムの使い方がよくわからない場合は、テストトピックで自由にテストしていただいて構いません。

最近の書き込みはこちら。

詳細なカスタマイズ依頼をするならこちら。

タイトルとURLをコピーしました