こんにちは、Ryohei(@ityryohei)です!

本記事では、CSSでスクロールを促すスクロールダウンボタンを作成する方法をご紹介しています。

スクロールダウンボタンとは、ファーストビューや次のコンテンツへ誘導するためにユーザーにスクロールを促すボタンを指します。ファーストビューいっぱいにキービジュアルを表示していたり、スクロールタイプの全画面ページで次のページへ移動を促すために使用されます。

下記のようなボタンがスクロールダウンボタンになります。

本記事では、上記のスクロールダウンボタンをCSSで作成していきます。マウスホイール部分のアニメーションも一緒に作成していきます。

スクロールを促すスクロールダウンボタンをCSSで作りたいんだけど、良い方法ないかな?

上記の疑問にお答えしています。

では、解説していきます。

スクロールダウンボタンを表示する要素を作成する

スクロールダウンボタンを表示する要素を作成します。表示部分はすべてCSSでスタイルをつけていきますので、ここでは要素だけ作成しておきます。

HTML

<div class="mouse">
    <div class="mouse-wheel"></div>
    <div class="mouse-arrow"></div>
</div>

上記の「mouse-wheel」に丸い円を、「mouse-arrow」に矢印のスタイルを定義します。

以上で要素の作成は完了です。

@keyframesでアニメーションを作成する

@keyframesでアニメーションを作成します。冒頭でご紹介したデモで円形を動かしている部分になります。translateY()で上下のアニメーションを実現しています。CSSで書くと下記のようになります。(translateX()は後ほどスタイルで定義するposition調整用です。)

CSS

@keyframes move-wheel {
    from {
        transform: translateX(-50%) translateY(0);
    }
    to {
        transform: translateX(-50%) translateY(5px);
    }
}

要素にスタイルを定義する

最後に前項で作成した要素にスタイルを定義します。擬似要素を多用しているため、行数が長くなっています。

Sass

.mouse {
    margin-left: -15px;
    position: fixed;
    bottom: 40px;
    left: 50%;
    width: 30px;
    height: 50px;
    cursor: pointer;
    &:after {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        border-radius: 20px;
        border: 1px solid #000000;
        box-sizing: border-box;
    }
    &-wheel {
        position: absolute;
        top: 10px;
        left: 50%;
        width: 5px;
        height: 5px;
        border-radius: 50%;
        border: 1px solid #000000;
        transform: translateX(-50%);
        animation: move-wheel 0.5s alternate infinite;
    }
    &-arrow {
        position: absolute;
        bottom: -10px;
        left: 50%;
        width: 20px;
        height: 40px;
        transform: translateX(-50%);
        &:before {
            content: "";
            position: absolute;
            bottom: 0;
            left: calc(50% - 1px);
            width: 1px;
            height: 30px;
            background-color: #000000;
        }
        &:after {
            content: "";
            position: absolute;
            bottom: 0;
            left: calc(50% - 6px);
            width: 10px;
            height: 10px;
            border-bottom: 1px solid #000000;
            border-left: 1px solid #000000;
            transform: rotate(-45deg);
        }
    }
}

以上でデモでご紹介したスクロールダウンボタンの作成は完了です。

最後に

スクロールダウンボタンは色々なデザインがありますが、今回は一般的に使用されているマウスのデザインを作成してみました。検索すると色々なデザインが出てくるので参考にしてみてくださいね!

以上、CSSでスクロールを促すスクロールダウンボタンを作成する方法のご紹介でした!

この記事を書いた人

Ryohei

Webエンジニア / ブロガー

福岡のWeb制作会社に務めるWebエンジニアです。エンジニア歴は10年程で、好きな言語はPHPとJavaScriptです。本サイトは私がインプットしたWebに関する知識を整理し、共有することを目的に2015年から運営しています。Webに関するご相談があれば気軽にお問い合わせください。