【Sass】mixinでの:hoverアニメーション解説

こんにちは、かさいです。
先月末にローンチした自社サイトのリニューアルでは、デザインとフロントエンド周りの調整を担当しました。

弊社のサイトはPCユーザーの割り合いが約80%と多いため、リンク部分の:hoverアニメーションには少しリッチな動きを取り入れました。

今回は、実際にサイトへ組み込んでいるmixinの:hoverアニメーションについて書いていきたいと思います。

1. テキストリンクの:hoverアニメーション(下線が走るリンク)

ひとつめはこちらのシンプルなテキストリンクです。

See the Pen TRYM Link line Animation by Keiji Kasai (@Kasai3) on CodePen.

ヘッダーやフッター、Aboutページなどで使用しています。
mixinでまとめているので、aタグを囲んでいるタグへ@includeを指定するだけでアニメーションが適用されます。

mixinで設定している引数はこちら。

・:hover時のテキスト透明度
・:hover時の下線色
・:hover時のテキスト色

それぞれデフォルト値を指定していますが、下記のように変更できます。

下線部アニメーションの仕組みはこちらです。

See the Pen TRYM Link line Animation – How it works by Keiji Kasai (@Kasai3) on CodePen.

::beforeと::afterの擬似要素で2本のラインを描き、transition-delayでタイミングをずらして動かしています。
また、カーソルアウトの際もたつかせないために、:hoverにだけtransition-delayを適用しました。

aタグにoverflow: hidden;をつけることでテキストの下にだけラインが表示されるので、下線が走っているように見えますね。

2. ボタンリンクの:hoverアニメーション(まばたきするボタン)

ふたつめはこちらのボタンリンクです。

See the Pen TRYM Button Animation by Keiji Kasai (@Kasai3) on CodePen.

各ページでアクセントとして使用しています。
こちらもmixinでまとめているので、aタグを囲んでいるタグへ@includeを指定するだけでアニメーションが適用されます。

mixinで設定している引数はこちら。
・:hover前のテキスト色/横棒色
・:hover前の枠色/:hover時背景色
・:hover時のテキスト色
・:hover時の横棒色

それぞれデフォルト値を指定していますが、下記のように変更できます。

aタグの::beforeと::afterの擬似要素の高さを変化させることで背景色を変えて、まばたきのような動きをつけています。

横棒部の仕組みはひとつめの応用ですが、こちらではaタグ内のspanタグの疑似要素でアニメーションさせています。

まとめ

シンプルなアンカーデザインでも:hoverアニメーションをつけることによって新鮮な印象を与え、リンク先への期待値を上げられるのではと考えます。

今回ご紹介したmixinは、IE11, Edge/Chrome/Firefox/Safari各最新バージョンに対応しています。
カスタマイズしてぜひ使ってみてください。

Writer

かさい

デザイナー兼フロントエンドエンジニアをやっています。

Qiita

Contact

ご提案依頼、ご相談、お見積もりなど
お気軽にお問合わせください。

03-6403-3259

平日 10:00~19:00

「Web制作について」とお伝え頂ければ
担当者に取次させていただきます。

Mailform

contact@trym.jp
でも受け付けております。