装飾用の画像2枚を重ね、回転と拡大縮小を繰り返す見本です。親要素に高さと配置基準を設け、動く画像が本文へ重ならないようにします。停止チェックとOSの動きを減らす設定に対応します。
停止できる見本
HTMLとCSS
HTMLはカスタムHTMLブロック、CSSは追加CSSまたは子テーマのスタイルシートへ記載します。画像URLは自分のメディアへ変更してください。
<div class="waza-fx-demo"><label><input type="checkbox" class="waza-fx-pause"> アニメーションを停止</label><div class="waza-fx-stage" aria-hidden="true"><img class="waza-fx-rotate" src="https://motoki-design.co.jp/wordpress/wp-content/uploads/fx_image_02.png" alt=""><img class="waza-fx-scale" src="https://motoki-design.co.jp/wordpress/wp-content/uploads/fx_image_01.png" alt=""></div></div>.waza-fx-stage{position:relative;isolation:isolate;overflow:hidden;aspect-ratio:16/9;background:#101820}.waza-fx-stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}.waza-fx-rotate{animation:waza-fx-turn 80s linear infinite}.waza-fx-scale{animation:waza-fx-pulse 5s ease-in-out infinite alternate}.waza-fx-demo:has(.waza-fx-pause:checked) .waza-fx-stage img{animation-play-state:paused}@keyframes waza-fx-turn{to{transform:rotate(360deg)}}@keyframes waza-fx-pulse{from{transform:scale(.9)}to{transform:scale(1.1)}}@media(prefers-reduced-motion:reduce){.waza-fx-stage img{animation:none}}画像は装飾なのでaltを空にし、ステージを読み上げ対象から外しています。情報を伝える画像や文字を含む場合は、その内容を別の本文として提供してください。停止操作は:has()対応ブラウザが前提です。
停止操作の実画面
画像2枚の読込後にチェックを入れると両方のanimation-play-stateがpausedになり、Spaceで解除するとrunningへ戻ることを実SWELL環境で確認しました。
設定するHTMLとCSSは掲載例と同じものを使用しています。
停止操作を試すには、Tabでチェックボックスに移動してSpaceを押します。
実端末の性能とOSの動きを減らす設定は別の確認項目として残しています。
スクロールをきっかけに一度だけ表示する場合は、フェードインの方法を使います。

確認と戻し方
チェックボックスをクリックし、キーボードではTabで移動してSpaceで停止・再開できるか確認します。OSの動きを減らす設定ではアニメーション自体を停止します。実端末で動作と負荷を確認し、画像の容量も抑えてください。
複数設置しても同じIDを重複させないようクラスで構成しています。戻す場合は追加したHTML・CSSを取り除きます。旧loop IDや汎用rotateキーフレームのコードと併用しないでください。旧GitHub例とは異なる修正版です。





