画像にスポットライト(照明)が当たっているように見えるCSS

※当サイトにはプロモーションが含まれています。

クライアントクライアント

画像やバナーにスポットライトが当たるようなCSSを作成してくれ

にゃテックにゃテック

おけまるだにゃ。

LP(ランディングページ)やSP(セールスページ)などで、特定の要素に注目を集めたいときには、下記のようなスポットライト風の演出が効果的かもしれません。

スポットライト

バナー画像

スポットライト

今回、試行錯誤しながら、画像とCSSでアニメーション効果を作成した備忘録です。

スポットライトのようなアニメーションの構造について

このような、スポットライトが当たっているような効果を作成するにあたって、画像を2枚使用しています(CSSのみは難しいので諦めました)。

スポットライト
上からの照明
スポットライト
スポットライト

この2つの画像を、下記のような順番に並べる事で、光が当たっているようにしてみました。

バナーにスポットライトが当たっていうるように見えるCSS

バナーや画像などにスポットライトが当たっているように見えるHTMLCSSについてです。

HTML

<div class="nya-spot_area">
<div class="nya-spot_inner">
<!-- 上からの照明 -->
<div class="nya-spotlight-top">
<img src="./spotlight-top.png" alt="上からの照明">
</div>
<!-- 画像・バナー(中間) -->
<img src="./img_banner.jpg" alt="バナー画像" class="nya-banner_img">
<!-- スポットライト -->
<div class="nya-spotlight-circle">
<img src="./spotlight-circle.png" alt="スポットライト">
</div>
</div>
</div>

<img>タグには、実際の相対(絶対)URLが入りますが、今回はイメージしやすいように、ファイル名(spotlight-top.pngなど)を記載しています。

CSS

.nya-spot_area {
position: relative;
width: 100%;
max-height: 100vh;
overflow: hidden;
text-align: center;
background-color: #000;
}

.nya-spot_area img {
display: block;
max-width: 100%;
height: auto;
}

.nya-spotlight-top {
position: absolute;
top: 0;
left: 50%;
transform: translateX(-50%) scale(0.9);
width: 1070px;
opacity: 0;
z-index: 100;
animation: nya-spotlightFade 3s ease-in-out infinite alternate;
}

.nya-banner_img {
position: relative;
z-index: 50;
top: 20px; /* 画像の位置調整 */
display: block;
margin: 0 auto;
}

.nya-spotlight-circle {
position: absolute;
top: 0px; /* 画像のtopに合わせて調整 */
left: 50%;
transform: translateX(-50%) scale(1.2);
width: 842px;
opacity: 0;
z-index: 10;
animation: nya-spotlight2Fade 3s ease-in-out infinite alternate;
pointer-events: none;
}

@media (max-width: 768px) {
.nya-banner_img {
margin-top: 0;
width: 70%; /* スマホでの表示調整 */
}
.nya-spotlight-top,
.nya-spotlight-circle {
width: 100%;
}
.nya-spotlight-circle {
top: 20px; /* スマホでのずれ調整 */
}
}

@keyframes nya-spotlightFade {
0% {
opacity: 0;
transform: translateX(-50%) scale(0.9);
}
100% {
opacity: 1;
transform: translateX(-50%) scale(1);
}
}

@keyframes nya-spotlight2Fade {
0% {
opacity: 0;
transform: translateX(-50%) scale(1.2);
}
100% {
opacity: 1;
transform: translateX(-50%) scale(1);
}
}

このCSSは、スポットライトの中心とする画像によって、最適な光の位置などが変わってきます。

そのため、.nya-banner_imgの調整は必須になってくると思います。

なお、使用したスポットライトの画像は、二次利用していただいても大丈夫です。

スポットライト
上からの照明
スポットライト
スポットライト
にゃテックにゃテック

右クリックで保存やドラッグ&ドロップなどで画像の保存ができます。