画像がページ読み込み時にぼかされ、スクロールしてその要素が画面に入ると自然にぼかしが解除されるアニメーションを実装してみましょう。
本記事では、CSSのfilterとtransition、そしてJavaScriptを使って、画像がスクロールとともに動的にぼかしが消えるエフェクトを実現する方法を紹介します。
これにより、ユーザー体験を向上させるユニークなビジュアル効果をウェブデザインに追加することができます。
初心者から中級者まで、すぐに取り入れられるテクニックですので、ぜひ試してみてください!
今回は、「画像をクリックすると画面いっぱいにポップアップ表示する処理」の処理も入れて併用可能です。(そのコードはリンク先から見てください)
.jpg)
.jpg)
document.addEventListener('DOMContentLoaded', () => { // ぼかしを適用する画像をクラス名 "distorted" で取得 const distortedImages = document.querySelectorAll('img.distorted'); // 画像が画面に入ると復元する function checkVisibility() { const windowHeight = window.innerHeight; distortedImages.forEach((image) => { const rect = image.getBoundingClientRect(); const isVisible = rect.top >= 0 && rect.bottom <= windowHeight; if (isVisible) { image.classList.remove('distorted'); image.classList.add('restored'); } else { image.classList.remove('restored'); image.classList.add('distorted'); } }); } // 初回チェック checkVisibility(); // スクロールイベントで可視性チェック window.addEventListener('scroll', checkVisibility); });
<div class="gallery"> <img class="distorted thumbnail" src="/wp-content/uploads/2025/01/射的の屋台(日中).jpg" alt="射的の屋台(日中)" width="1920" height="1080" class="aligncenter size-full wp-image-538" /> <img class="distorted thumbnail" src="/wp-content/uploads/2024/12/文化系の部室(日中).jpg" alt="文化系の部室(日中)" width="1920" height="1080" class="aligncenter size-full wp-image-546" /> </div>
/* class="distorted" がついている画像のみぼかし */ img.distorted { filter: blur(8px); } /* 画像が画面内に入ったときに元に戻すスタイル */ img.restored { filter: none; } /* ぼかしをスムーズに戻すためのトランジション */ img.distorted, img.restored { transition: filter 1s ease-in-out; /* ぼかしにのみトランジション */ }