速報

Microsoft 365で接続障害|OutlookやTeams予定表に影響し復旧作業が継続

CATEGORY

【CSS】マウスオーバーでボーダーが要素の形に沿って表示されるアニメーション

※本ページのリンクにはプロモーションが含まれています。

【CSS】マウスオーバーでボーダーが要素の形に沿って表示されるアニメーション

目次

本記事ではマウスオーバーでボーダーが要素を一周するアニメーションをご紹介しています。もう少し詳しく説明すると、ボタンやボックスといった要素をマウスオーバーすると、要素の外周に沿ってボーダーが描画されるアニメーションです!

……と言われても文字だけで想像するのは結構難しいですよね。なので簡単なデモをご用意させていただきました。下記の「Hover Me!」と記載されたボタンのようなリンクにマウスカーソルを合わせてみてください。スマホの方はタップでお願いします。

See the Pen Hover Animation10 | CSS by ryohei (@intotheprogram) on CodePen.

いかがでしょうか。

「Hover Me!」と記載された要素にカーソルを合わると、要素の外周を沿うような形でボーダーが描画されたかと思います。要素がクリックされるかはさておき、つい最後まで見てしまいますよね!このアニメーションを要素に設定しておくことで閲覧者の注目を集めることができるかと思います!

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

スポンサーリンク

ボーダーアニメーションを表示する要素を作成する

まずは簡単にボタンやボックス要素をマークアップします。本記事ではaタグを使用していますが、class名を付けてあげると汎用的に使いまわせるかと思います。

HTML

<a href="#">Hover Me!</a>

以上でマークアップは完了です。続いて上記で用意した要素に、CSSでスタイルを付けていきます。

通常時・マウスオーバー時のスタイルを定義する

下記が実際に使用しているスタイルです。若干長くなってしまいましたので、簡単にですが補足させていただきます。

本記事でご紹介しているボーダーアニメーションは、疑似要素に予め設定したボーダーをマウスオーバーで表示することにより実現しています。

予め疑似要素の幅と高さをゼロにして透明のボーダーを設定しておき、マウスオーバー時にそれらをアクティブにしてトランジションアニメーションで表示しています。また、ボーダーが要素に沿って順番に表示されるように、transition-delayで開始時間がずれるようにしています。

CSS

a {
    position: relative;
    display: block;
    width: 320px;
    height: 57px;
    line-height: 57px;
    margin: 40px auto;
    text-align: center;
    text-decoration: none;
    color: #a8aabc;
    font-weight: bold;
    transition: .25s;
    box-shadow: 2px 2px 5px 0px rgba(200,200,200,1);
    background-color: #ffffff;
}
    
a::before {
    content: '';
    position: absolute;
    top: -2px;
    left: -2px;
    width: 0;
    height: 0;
    border: 2px solid transparent;
}
    
a::after {
    content: '';
    position: absolute;
    bottom: -2px;
    right: -2px;
    width: 0;
    height: 0;
    border: 2px solid transparent;
}

a:hover {
    color: #384878;
}
    
a:hover::before {
    width: 100%;
    height: 100%;
    border-top-color: #384878;
    border-right-color: #384878;
    transition: width .25s ease-out, height .25s ease-out .25s;
}

a:hover::after {
    width: 100%;
    height: 100%;
    border-bottom-color: #384878;
    border-left-color: #384878;
    transition: border-color 0s ease-out .5s, width .25s ease-out .5s, height .25s ease-out .75s;
}

スポンサーリンク

最後に

いかがでしたでしょうか。

本記事の内容とは若干異なりますが、下記の記事でもボーダー系のマウスオーバーのアニメーションをご紹介していますので、併せてご確認いただければ幸いです。

【CSS】マウスオーバーで四辺のボーダーが伸びるアニメーション

以上、CSSでマウスオーバーでボーダーが要素を一周するアニメーションのご紹介でした!

この記事を書いた人

Ryohei

Webエンジニア / アプリ開発者 / 技術ブログ運営者

福岡のWeb制作会社に勤務するWebエンジニアです。10年以上にわたりWeb制作・開発に携わり、ヒアリングや進行管理から、コーディング、CMSの構築、システム開発、サーバーの構築・保守・運用まで、Webサイト制作の工程を幅広く担当しています。Webサイトは、これまでに100以上の構築・保守を手がけてきました。

個人でもWebサイトの制作・改修やWebアプリの開発・運用を行い、AIを活用した開発にも取り組んでいます。近年はWebセキュリティにも注力しています。

2015年から技術メディア「Into the Program」を運営し、実務や開発で得た知識をもとに、プログラミングの実装方法やWebサイトの運用・セキュリティ情報を発信しています。

主な分野
Webサイト構築・保守・運用 / HTML/CSS / JavaScript / PHP / WordPress / サーバー構築・保守・運用 / アプリ開発 / セキュリティ対策
資格・試験合格
情報セキュリティマネジメント試験
基本情報技術者試験
AWS認定ソリューションアーキテクト アソシエイト
PHP8技術者認定ウィザード
メディア運営
2015年〜

記事の作成・更新について

セキュリティ記事は、ベンダーの公式アドバイザリやCVE・JVNなどの一次情報を参照し、出典と情報確認日を記載します。実環境での検証を行った場合は、その環境と確認範囲を明示します。重要な追加情報や誤りを把握した場合は、内容を確認して追記・訂正します。

関連する記事

おすすめの書籍

キーワードから探す

スポンサーリンク