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カスタマイズ依頼

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

エントリーカード内のサムネイル表示(レ...
 
共有:
通知
すべてクリア

[解決済] エントリーカード内のサムネイル表示(レンダリング)について

10 投稿
2 ユーザー
3 Reactions
2,359 表示
cocoon-user1206
(@cocoon-user1206)
Trusted Member Registered
結合: 6年前
投稿: 63
トピックスターター  

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

 

imgのwidth属性、height属性とCSSのwidth、heightはどう使い分けていますか?

そして、以下のようなことを感じていませんでしょうか。

Google Chrome(新しいMicrosoft Edge)にて。

TOPページに表示されるエントリーカードのことですが、サムネイルの表示領域が確保されてから、画像が読み込まれるまでの間、画像よりも大きな領域が確保されます。見た感じでは、横幅と同じだけ縦幅が確保されているようです。1秒未満の事だと思いますが、ギクシャクした感じがします。

Firefoxでは起きていないと思います。ブラウザー(内のエンジン)によってレンダリング処理は異なると思います。

imgタグのwidth属性とheight属性ではサイズが指定されています。CSSでの指定は見当たりませんでした。

試しに、以下のCSSを追加したところ、問題が解消されたと思います。

article[id^="post-"] > figure > img{
  max-width: 320px;
  max-height: 180px;
}

 

widthではなくmax-widthにしている理由は、ディスプレイ領域のサイズによって画像のサイズは変化するようなので、それに対応する為です。

 

関連があるか分かりませんが、Lazy Loadをオンにしています。

 

以上です。


   
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17372
 
投稿者:: @cocoon-user1206

imgのwidth属性、height属性とCSSのwidth、heightはどう使い分けていますか?

属性は出来る限り挿入するようにしています。インデックスは関係ないけど、AMPとかに影響するので。
CSSはサイズ指定までは必ず行う必要があるものとしては、行ってません。


   
cocoon-user1206
(@cocoon-user1206)
Trusted Member Registered
結合: 6年前
投稿: 63
トピックスターター  

わいひら様

 

ご回答ありがとうございます。

投稿者:: @yhira

属性は出来る限り挿入するようにしています。インデックスは関係ないけど、AMPとかに影響するので。
CSSはサイズ指定までは必ず行う必要があるものとしては、行ってません。

わかりました。

 

以下は自分で調べたこと記録するために書いています。

 

1.width属性とCSSのwidthが両方定義されていた場合、どちらが優先されるか試したところ、CSSが優先されました。

 

2.サムネイル画像が表示される直前に、画像よりも大きい表示領域(画像は320px×180pxなのに、一瞬320px×320px確保されたように見える)が確保される件ですが、CocoonテーマのLazy Loadをオフにすれば起きなくなりました。Lazy Loadで画像挿入する際に、何かが起きているようです。この現象はページを更新、もしくはキャッシュをクリアして更新した場合は確認できません。新規にブラウザーを開く、もしくは新規にタブを開いてページを表示させた時に確認できます。

しかしながら、自分の環境の問題かもしれませんので、その場合はごめんなさい。

 

画像の表示領域確保については、次のエントリーで話し合いされていました。

 

[固定] Lazy Loadの画像読み込み前でも画像の高さと幅を保持したい。について

https://wp-cocoon.com/community/demands/lazy-load%e3%81%ae%e7%94%bb%e5%83%8f%e8%aa%ad%e3%81%bf%e8%be%bc%e3%81%bf%e5%89%8d%e3%81%a7%e3%82%82%e7%94%bb%e5%83%8f%e3%81%ae%e9%ab%98%e3%81%95%e3%81%a8%e5%b9%85%e3%82%92%e4%bf%9d%e6%8c%81%e3%81%97/#post-26857

 

Lazy LoadはWordPress5.4の機能として追加する予定だったようですが、スキップされたようです。

WordPressチームはLazy Loading機能プラグインを公開してテスト中のようです。

Lazy Loading Feature Plugin By The WordPress Team

https://wordpress.org/plugins/wp-lazy-loading/

 

以上です。


   
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17372
 
投稿者:: @cocoon-user1206

CocoonテーマのLazy Loadをオフにすれば起きなくなりました。

そうだと思います。
Lazy Loadによって、画像が読み込まれる前は、画像が指定されていない状態なので、サイズが取得できないんだと思います。
Lazy Load動作については、次のバージョンのWordPress仕様に任せようと思っています。


   
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17372
 

当サイトのCocoon設定のLazy Loadを無効にして、Lazy Loading Feature Pluginを有効にしてみました。
https://wp-cocoon.com/?cat=0

そしたらChromeでもそういった動作起きないので、ここはやはりWordpress Lazy Loadに任せたいと思います。


   
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17372
 

GIF画像は、インデックスリストをブラウザでリロードしたものなんですが、わかりづらいですね ? 
単にスクロールしているようにしか見えない。


   
cocoon-user1206
(@cocoon-user1206)
Trusted Member Registered
結合: 6年前
投稿: 63
トピックスターター  
わいひら様

投稿者:: @yhira

そしたらChromeでもそういった動作起きないので、ここはやはりWordpress Lazy Loadに任せたいと思います。

私も試してみました。私の環境はOS:Windows10、ブラウザー:新しいMicrosoft EdgeもしくはGoogle Chromeですが、問題はそのまま起きているように見えます。ただ、問題を目視できる時間が短くなったように感じます。私の使っているPCは処理速度が割と遅い方なので、処理速度が速いPCの場合は目視で確認できないのかもしれません。

 

Lazy Loading Feature Plugin By The WordPress Team

https://wordpress.org/plugins/wp-lazy-loading/

について調べたところ、imgタグのloading属性を加えることで遅延読み込みを実装しているようです。

ソースを眺めてみましたが、クラス名で遅延読み込みを除外する方法がないようです。loading属性が既に設定されている場合は、スキップされるようです。未対応のブラウザーについてフォローしている部分が見当たりません。

 

loadingブラウザーがどのように画像を読み込むかを示します。

  • eager: 画像が現在可視ビューポートに入っているかどうかにかかわらず、直ちに画像を読み込みます (これが既定値です)。
  • lazy: 画像がブラウザーで定義されたビューポートからの距離に達するまで、画像の読み込みを遅延させます。これは、画像が必要とされるのが合理的に確実になるまで、処理に必要なネットワークやストレージの帯域幅を使用しないようにするためです。これは一般的に、ほとんどの典型的な使用法において、コンテンツの性能を向上させることができます。

引用: https://developer.mozilla.org/ja/docs/Web/HTML/Element/Img

 

対応しているブラウザーは次の通りです。

https://caniuse.com/#feat=loading-lazy-attr

 

つまり、ブラウザーエンジンの実装に依存しているようです。

 

CocoonテーマのLazy LoadはIntersection Observer APIを利用されていると設定画面に書いてありました。また、imgタグにloading="lazy"が見つかるところから、ブラウザーエンジンでの動作も期待しているようです。その二つが競合することがないようにされていますか?

私が報告している現象が、何によるものかハッキリしませんが、ブラウザーエンジンの実装によるものであれば、引き続き問題は起きることになりますね。


   
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17372
 

僕も、読み込みに手間取ったとき(時間がかかったとき)は、同様の症状が起きました。
こればっかりは、どうしようもないかもしれません。

競合というか、同時に併記しています。
ただ、loading="lazy"だけにしても、今回のように同様の症状が起きたので、たとえ併記しなかったとしても今回の冒頭で書き込まれた動作の根本的な解決にはならなくないですか?

ただいずれにせよ、この動作は今後のWordPressと、ブラウザーに任せようと思います。


   
cocoon-user1206
(@cocoon-user1206)
Trusted Member Registered
結合: 6年前
投稿: 63
トピックスターター  

わいひら 様

 

投稿者:: @yhira

ただ、loading="lazy"だけにしても、今回のように同様の症状が起きたので、たとえ併記しなかったとしても今回の冒頭で書き込まれた動作の根本的な解決にはならなくないですか?

そうですね。ブラウザーエンジンの問題と思われるので、根本的な解決にはなりそうもありませんね。

投稿者:: @yhira

ただいずれにせよ、この動作は今後のWordPressと、ブラウザーに任せようと思います。

わかりました。

 

学ばせていただきました。

誠にありがとうございました。


   
わいひら reacted
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17372
 

僕も以前、Lazy Loadをする前に擬似的な画像読み込む方法を行ったことがあるのですが、結局うまくいかず不具合の原因になったことがありました^^;
ここは、公式の動作に合わせておいた方が無難かなと。


   
共有:

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

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

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

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

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

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

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

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