特典機能について

アイキャッチのgif画像をfreezeframe.jsにしたいです。 | Cocoonテーマに関する質問 | 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. ブラウザ環境チェックツール

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

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

wpForoの解決済みリンク

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

wpForoのいいねリンク

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

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

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

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

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

スポンサーリンク
共有:
通知
すべてクリア

[解決済] アイキャッチのgif画像をfreezeframe.jsにしたいです。


BB.com
(@bb-com)
Active Member
結合: 1年前
投稿: 11
Topic starter  

こんにちは。

Cocoonのアイキャッチ画像はgif画像で登録できると思います。
しかし、gif画像は自動でプレビューされるため、重くなります。

そこで、「 https://github.com/ctrl-freaks/freezeframe.js/」こちらを導入し、ホバーしたgif画像のみ動かせるようにしました。
さらに、アイキャッチにこれらを導入するためには、アイキャッチ画像のclass(entry-card-thumb-image card-thumb-image wp-post-image)を「my_class_2 freezeframe-responsive」に置き換える必要があることが分かりました。

データファイルのどの部分を置き換えればいいか分かりません。
もしよろしければ、ご教示お願いいたします。


mk2
(@mk2_mk2)
メンバー Moderator
結合: 1年前
投稿: 3618
 

BB.comさん

GIF動画(アニメーションGIF)ってことですね?

やってみましたが、以下のようなイメージでしょうか。
(マウスポインタ―が見づらいと思いますが。)

 
以下のページを参考にするとできました。
 
アニメーションGIFをマウスホバーやクリックで再生・停止できるようになるJavaScriptライブラリ「Freezeframe.js」
https://techmemo.biz/javascript/freezeframe/
 
上記の、「ステップ1」と「ステップ3」でできるみたいです。
(「ステップ2」は必要なかったです。)
 
「ステップ3」の以下の部分。
特定のクラスのみに適用したい場合は、クラス名を指定してあげます。
このクラス名に「.eye-catch-image」を指定するだけで、私は上記のような動作でした。
 
【追記】
 
申し訳ないですが、フロントページのインデックスカードの確認を忘れました。
既にPCを使えない状態です。

BB.comわいひら 件のいいね!
Akira
(@akira)
Noble Memberサイト
結合: 4年前
投稿: 1052
Akira - FacebookAkira - Twitter
 

1 つ疑問点があります。

gif画像は自動でプレビューされるため、重くなります。

そこで、「  https://github.com/ctrl-freaks/freezeframe.js/」こちらを導入し、ホバーしたgif画像のみ動かせるようにしました。

とのことですが、Freezeframe.js を使っても GIF は自動で再生されます。

このライブラリは、最初は GIF を CSS で非表示にしておいて、代わりに canvas で GIF の静止画を表示しています。そして、ホバーなどをした際に GIF を CSS で表示して、代わりに canvas を非表示にします。ホバーした時だけ GIF が動くのではなく、ホバーしていない時も GIF は動いています。

公式のデモ の最初の画像をデベロッパーツールでご確認ください。<canvas> に opacity: 0 、<img> に opacity: 1 を指定すると GIF が動いているのが分かります。

Freezeframe.js は、ご要望に合っているでしょうか?


BB.comわいひら 件のいいね!
BB.com
(@bb-com)
Active Member
結合: 1年前
投稿: 11
Topic starter  

@akira 

Freezeframe.jsを使用しても軽くならないのですね。
知りませんでした。

それでも、すべてのgifが動くのは、見ていて鬱陶しいと思うので、ホバーで動かせるようしたいです。


BB.com
(@bb-com)
Active Member
結合: 1年前
投稿: 11
Topic starter  

@mk2_mk2 

解説ありがとうございます。

申し訳ありませんが、解説をみてもよく分かりません・・・。


Akira
(@akira)
Noble Memberサイト
結合: 4年前
投稿: 1052
Akira - FacebookAkira - Twitter
 

@bb-com さん

子テーマの tmp-user/head-insert.php に以下を追加するのが最も簡単なやり方です。

<script defer src="https://unpkg.com/freezeframe/dist/freezeframe.min.js"></script>
<script type="module">
  new Freezeframe('.eye-catch-image[src$=".gif"]');
</script>

※ 非同期で JavaScript を読み込むようにしています。非同期での読み込みがお気に召さない場合は、defer と type="module" を削除してください。

class を変更するのではなく、Freezeframe.js にセレクターを指定します。指定するセレクターの書き方は、CSS と同じです。そのため、以下の書き方は…

.eye-catch-image[src$=".gif"]

class 属性に eye-catch-image があって、かつ src 属性の最後が .gif で終わる要素を指します。

※ アイキャッチ画像の上にカテゴリー名を表示している場合は、以下の CSS が必要かもしれません。

.eye-catch .cat-label {
  z-index: 1;
}

Freezeframe.jsを使用しても軽くならないのですね。

形式を GIF ではなく WebP にすれば、サイズ(容量)が小さくなると思います。例えば、以下のオンラインツールは、GIF を WebP に変換できます。

GIF to WebP converter


わいひらBB.com 件のいいね!
BB.com
(@bb-com)
Active Member
結合: 1年前
投稿: 11
Topic starter  

@akira

お世話になっております。
大変参考になりました。

時間があるときにじっくり対応してみます。
ありがとうございました🤲


Akira
(@akira)
Noble Memberサイト
結合: 4年前
投稿: 1052
Akira - FacebookAkira - Twitter
 

@bb-com さん

申し訳ありません。私が書いたセレクターでは、ご希望に沿わないかもしれません。

投稿ページのアイキャッチ画像であれば、先に書いたセレクターで指定できます。

new Freezeframe('.eye-catch-image[src$=".gif"]');

ただ、最初にこのようにお書きになっているのを見逃していました。

class(entry-card-thumb-image card-thumb-image wp-post-image)

この class があるのは、カテゴリーページなどの記事一覧のサムネイル画像です。もし、サムネイル画像であれば、以下のセレクターで指定できます。

new Freezeframe('.entry-card-thumb-image[src$=".gif"]');

もし、アイキャッチ画像もサムネイル画像も対象にされる場合は、以下のセレクターで指定できます。

new Freezeframe(':is(.entry-card-thumb-image, .eye-catch-image)[src$=".gif"]');

対象とされたい画像のセレクターをご指定ください。


わいひら 件のいいね!
BB.com
(@bb-com)
Active Member
結合: 1年前
投稿: 11
Topic starter  

@akira

ご指導、ありがとうございます。

アイキャッチ画像もサムネイル画像も、両方対象にしたいです。

以下のコードを子テーマの tmp-user/head-insert.phpにいれればよろしいのでしょうか?

new Freezeframe(':is(.entry-card-thumb-image, .eye-catch-image)[src$=".gif"]');

Akira
(@akira)
Noble Memberサイト
結合: 4年前
投稿: 1052
Akira - FacebookAkira - Twitter
 

@bb-com さん

子テーマの tmp-user/head-insert.php に追加する全文は以下のものです。

<script defer src="https://unpkg.com/freezeframe/dist/freezeframe.min.js"></script>
<script type="module">
  new Freezeframe(':is(.entry-card-thumb-image, .eye-catch-image)[src$=".gif"]');
</script>

アイキャッチ画像やサムネイル画像の上にカテゴリーを表示されている場合は、ホバーしていない時にカテゴリーが見えなくなります。カテゴリーを表示されている場合は、以下の CSS を子テーマの style.css に追加します。

.cat-label {
  z-index: 1;
}

また、Freezeframe.js を非同期で読み込んでいるため、サイトの表示速度によってはページを表示した際に動いている GIF が一瞬見えるかもしれません。その場合は以下の CSS を子テーマの style.css に追加すれば、動く GIF が一瞬見えることがなくなります。

:is(.entry-card-thumb-image, .eye-catch-image)[src$=".gif"] {
  opacity: 0;
}

BB.comわいひら 件のいいね!
BB.com
(@bb-com)
Active Member
結合: 1年前
投稿: 11
Topic starter  

@akira

お世話になっております。

何から何までありがとうございます!
休日に試してみます。

ありがとうございます!


わいひら 件のいいね!
BB.com
(@bb-com)
Active Member
結合: 1年前
投稿: 11
Topic starter  

@akira

お世話になっております。

試してみたら、無事に動作しました。

何から何までありがとうございました!


わいひら 件のいいね!
共有:
スポンサーリンク
SWELLと業務提携しています
WordPressテーマSWELL
わいひらをフォローする
おすすめサーバー(コスパ・バックアップ重視型)

性能も兼ね備えながら安くブログ運営を開始できる点においてのNo.1。
それでいてブログ成長後は、十分すぎるほどのスペックアップ余力も担保されている。

◎安く始められる
◎LiteSpeedを用いた高速サーバー(完全SSD)
◎http/3(高速化プロトコル)に対応
◎東京・大阪でリージョン選択が可能
◎プランのアップ・ダウングレードが自由自在
◎同サービス内でドメイン管理が可能
◎ディスク容量が多い
◎転送量が多い
◎毎日無料バックアップ(14日分)
◎DBは14日以内なら無料自動復旧可能
◎ファイルも14日以内なら無料自動復旧可能
◎アダルト・出会い系サイト可
◎ドメインとサーバー代のチャージ払いが可能
○サーバ引っ越し依頼が可能(有料)

サービス運営期間:4年

1年以上の契約をする場合は、クーポンコード入力でさらに50%割引キャンペーン中!
※BOX2 ~ BOX8プラン契約の場合

クーポンコード:PK4JK4RJ

クーポンの使用方法はこちら

安定感抜群のサーバーです。あまり急激なアクセス変動がないアフィリエイトサイトに向いています。

◎nginxを用いた高速サーバー(完全SSD)
◎老舗サーバーなので安定感抜群
◎ディスク容量が多い
◎転送量が多い
◎同サービス内でドメイン管理が可能
○http/2(高速化プロトコル)に対応
○毎日無料バックアップ(14日分)
◎DBは14日以内なら無料自動復旧可能
○ファイルは7日以内なら無料自動復旧可能
×プラン変更でCPUのスペックアップができない
×プラン変更しても即時反映されない
×アダルト・出会い系サイト不可

サービス運営期間:19年

とにかく速い。サイトに表示スピードを求めるならココ。
管理画面がシンプルで使いやすい。

◎nginxを用いた高速サーバー(完全SSD)
◎プランのアップ・ダウングレードが自由自在
◎同サービス内でドメイン管理が可能
◎ディスク容量が多い
◎転送量が多い
○http/2(高速化プロトコル)に対応
◎毎日無料バックアップ(14日分)
×DBは手動で復旧(データ取得は無料)
×ファイルも手動で復旧(データ取得は無料)
◎サーバ引っ越しツールあり(無料)
○サーバ引っ越し依頼が可能(有料)
◎ドメインとサーバー代のチャージ払いが可能

サービス運営期間:3年

常に新しいことに挑戦しているフロンティア精神あふるるレンタルサーバーです。
LiteSpeedやHTTP/2を日本で初めて導入したサーバー。

◎LiteSpeedを用いた高速サーバー(完全SSD)
◎http/3(高速化プロトコル)に対応
◎プランのアップ・ダウングレードが自由自在
◎同サービス内でドメイン管理が可能
◎転送量が多い
◎ディスク容量が多い
◎毎日無料バックアップ(14日分)
◎DBは14日以内なら無料自動復旧可能
×ファイルは手動復旧(データ取得は無料)
◎アダルト・出会い系サイト可
◎ドメインとサーバー代のチャージ払いが可能
○サーバ引っ越し依頼が可能(有料)

サービス運営期間:6年

格安な値段で始められる高機能サーバーです。
性能も備えつつ最安ならここ。
ただし少し機能は弱い。

◎LiteSpeedを用いた高速サーバー(完全SSD)
◎激安プランが用意してある
◎値段あたりのスペックが高い(コスパ良し)
◎サーバ引っ越し依頼が可能(無料)
◎アダルト・出会い系サイト可
○http/2(高速化プロトコル)に対応
△プランのアップは可能だがダウンは不可
△毎日自動バックアップ(1日分)
△前日のバックアップからのみ復元できる(無料)

サービス運営期間:6年

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