ボタンhover時のアニメーションで気になっていること

本題

タイトル通りではあるのですが大多数がどうでもいいと思うかもしれませんが見るたびに気になっていることについて書きます。

「細かいことが気になってしまう悪い癖」ってやつです。

気になるボタンの例

https://codepen.io/totoraj930/pen/xQVYOB/

:hover をトリガーにして transform でアニメーションさせるよくあるボタンだと思います。

何が気になるのかは下の gif をみてもらえればわかるかと・・・

気になるところgif

といったことがループするのが気になる!!!ってことです。

特定の位置にマウスポインタがある場合のみ起こる事ではあるのですが気になりませんか?

僕は気になります。

解決策

解決策gif

https://codepen.io/totoraj930/pen/JeXMOZ/

buttonのなかにspan要素をいれて、buttonの:hover でspanをアニメーションさせます。

buttonは:hover を拾うためだけのダミーで本体はspanという状態ですね。

ですがbuttonの:hover だけだとアニメーション後のspanの位置(buttonの範囲外)にマウスポインタが行くと戻ってしまうので spanの:hover も定義しておかないといけません。

おわりに

少々手間がかかりますが派手にボタンを動かすときなどでは有効な手法だと思います。

以上、細かいことが気になるはなしでした。