LPなどで使用されるお申し込みボタンを、キラッと光が右に流れ、上下に揺れるアニメーションで実装!レイアウトとソースコードを紹介!

はじめに

今回は過去の実務経験で作成をした、「キラッと光が右に流れて、上下に揺れる」お申し込みボタンのレイアウトとソースコードをご紹介します。

この記事でわかること
「キラッと光が右に流れて、上下に揺れる」お申し込みボタンのレイアウトとソースコード

「キラッと光が右に流れて、上下に揺れる」お申し込みボタンのレイアウト

「キラッと光が右に流れて、上下に揺れる」お申し込みボタンのソースコード

<div class="btn-center glitter updown">
	<a href="#" class="btn-link">
		今すぐ無料体験に申し込む!
		<span class="icon-right"></span>
	</a>
</div>

PR

.btn-center {
    text-align: center;
}
.btn-link {
    position: relative;
    display: inline-block;
    width: 100%;
    max-width: 640px;
    line-height: 130px;
    font-size: 30px;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-align: center;
    color: #fff;
    background: linear-gradient(to top, #66C538, #93D367);
    border-radius: 100px;
    box-shadow: 0 8px 8px rgba(0, 0, 0 ,0.4);
}

.glitter {
    position: relative;
    width: 100%;
    display: inline-block;
    overflow: hidden;
    padding-bottom: 16px;
}
.glitter::before {
    content: "";
    position: absolute;
    top: 0;
    left: -25%;
    width: 50%;
    height: 100%;
    background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.3) 100%);
    transform: skewX(-25deg);
    animation: glitterFlow 2s infinite;
    z-index: 1;
}
@keyframes glitterFlow {
    0% {
        left: -25%;
    }
    50% {
        left: 120%;
    }
    100% {
        left: 125%;
    }
}

.updown {
    animation: updown 3s ease-in-out infinite;
}
@keyframes updown {
    0% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-20px);
    }
    100% {
        transform: translateY(0);
    }
}

.icon-right::before {
    content: "";
    position: absolute;
    top: 50%;
    right: 10px;
    width: 6px;
    height: 6px;
    border-top: 2px solid currentColor;
    border-right: 2px solid currentColor;
    transform: translate(-65%,-50%) rotate(45deg);
}

@media screen and (min-width: 768px) {
    .btn-link {
        line-height: 130px;
        font-size: 30px;
    }
    .icon-right::before {
        right: 30px;
        width: 20px;
        height: 20px;
        border-top: 3px solid currentColor;
        border-right: 3px solid currentColor;
    }
}
@media screen and (max-width: 767px) {
    .btn-link {
        width: calc(100% - 20px);
        line-height: 80px;
        font-size: 18px;
    }
    .icon-right::before {
        right: 10px;
        width: 12px;
        height: 12px;
        border-top: 2px solid currentColor;
        border-right: 2px solid currentColor;
    }
}

ソースコード解説

ボタン部分のレイアウト

「.btn-center」と「.btn-link」で実装しています。

キラッと光が右に流れるアニメーション

「.glitter」で実装しています。「.glitter::before」のlinear-gradientのrgbaの透明度の部分を1に近づけるほど、光が白くなります。上記ソースコードでは「0」と「0.3」で指定しています。これくらいの数字が光らしいような見え方になります。

上下に揺れるアニメーション

「.updown」で実装しています。

アニメーションはcssの「animation」プロパティで実装しています。指定の仕方を忘れたり、いまいちわからないよ。という方は、下記でanimationプロパティについて記事を書いていますのでご覧ください。

animationプロパティ

毎回忘れてしまうcssのanimationプロパティの指定の仕方・順番、サブプロパティについて動きを含めて紹介しています。

ボタンの右向き矢印

「icon-right」で実装しています。矢印は今回のような「お申し込みボタン」や「もっと見るボタン」、「送信ボタン」、「前後の記事に遷移するボタン」などコーディングでは頻出です。ということで、コピペで矢印を実装できるように下記記事でhtmlとcssのソースコードをご用意しています。ぜひ確認していただければと思います。

矢印(背景なし)

サイトコーディングで頻出のHTML・CSSで作成した矢印アイコン(背景なし)のソースコードを紹介しています。

また、fontawesomeなどのアイコンを使用して矢印を実装することもできますが、CDNを読み込ませると使用しないアイコンまで読み込むことになってしまうので「PageSpeed Insights」で下記項目が改善項目で現れ、ページスピードが落ちます。

使用していないCSSの削減
レンダリングを妨げるリソースの除外

ただ、cssで実装できないアイコンもあるのでcssで実装できないアイコンは、そのアイコンだけダウンロードして使用する、cssで実装できるアイコンはcssで実装する、ということをお勧めします。

まとめ

今回は過去の実務経験で作成をした、「キラッと光が右に流れて、上下に揺れる」お申し込みボタンのレイアウトとソースコードをご紹介しました。animationプロパティの使い方や、アイコンはなるべくcssで実装することをお勧めすることについても書いたので、ぜひ参考にしていただければと思います。

他のアニメーションが実装されているボタンの記事

上下にぷるぷる揺れるボタン

LPなどで使用される購入を促すボタンを、上下にぷるぷる揺れるアニメーションで実装しました。レイアウトとソースコードも紹介しています。

他のHTMLCSS JavaScriptソースコード紹介記事まとめ

ソースコードまとめ

実務経験で作成したレイアウトのHTML・CSS ・JavaScriptソースコードを紹介した記事まとめています。

>お問い合わせはこちら

お問い合わせはこちら