もくじ
本記事では、複数行対応のホバー時のテキストスライドアニメーションの実装方法を紹介します。
上下左右のスライドに対応しています。
ホバー時に下から上にスライドするアニメーション
サンプル
Hover Me!
Hover Me! Hover Me!
Hover Me!
Hover Me! Hover Me!
Hover Me!
実装コード
HTML
Copy
<div class="hover-text"><span>Hover Me!<br>Hover Me!</span><span>Hover Me!<br>Hover Me!</span></div>
CSS
Copy
.hover-text {display: inline-flex;flex-direction: column;position: relative;overflow: hidden; /* 範囲外を隠す */line-height: 1.5;cursor: pointer;}.hover-text span {display: inline-block;transform: translateY(0); /* 初期状態: 表示位置 */transition: transform 0.3s ease; /* アニメーションを滑らかに */}.hover-text span:nth-child(2) {width: 100%;height: 100%;position: absolute;top: 100%;}.hover-text:hover span {transform: translateY(-100%); /* ホバー時にスライド */}
ホバー時に上から下にスライドするアニメーション
サンプル
Hover Me!
Hover Me! Hover Me!
Hover Me!
Hover Me! Hover Me!
Hover Me!
実装コード
HTML
Copy
<div class="hover-text"><span>Hover Me!<br>Hover Me!</span><span>Hover Me!<br>Hover Me!</span></div>
CSS
Copy
.hover-text {display: inline-flex;flex-direction: column;position: relative;overflow: hidden; /* 範囲外を隠す */line-height: 1.5;cursor: pointer;}.hover-text span {display: inline-block;transform: translateY(0); /* 初期状態: 表示位置 */transition: transform 0.3s ease; /* アニメーションを滑らかに */}.hover-text span:nth-child(2) {width: 100%;height: 100%;position: absolute;top: -100%;}.hover-text:hover span {transform: translateY(100%); /* ホバー時にスライド */}
ホバー時に左から右にスライドするアニメーション
サンプル
Hover Me!
Hover Me! Hover Me!
Hover Me!
Hover Me! Hover Me!
Hover Me!
実装コード
HTML
Copy
<div class="hover-text"><span>Hover Me!<br>Hover Me!</span><span>Hover Me!<br>Hover Me!</span></div>
CSS
Copy
.hover-text {display: inline-block;position: relative;overflow: hidden; /* 範囲外を隠す */line-height: 1.5;cursor: pointer;}.hover-text span {display: inline-block;transform: translateX(0); /* 初期状態: 表示位置 */transition: transform 0.3s ease; /* アニメーションを滑らかに */}.hover-text span:nth-child(2) {width: 100%;height: 100%;position: absolute;left: -100%;}.hover-text:hover span {transform: translateX(100%); /* ホバー時にスライド */}
ホバー時に右から左にスライドするアニメーション
サンプル
Hover Me!
Hover Me! Hover Me!
Hover Me!
Hover Me! Hover Me!
Hover Me!
実装コード
HTML
Copy
<div class="hover-text"><span>Hover Me!<br>Hover Me!</span><span>Hover Me!<br>Hover Me!</span></div>
CSS
Copy
.hover-text {display: inline-block;position: relative;overflow: hidden; /* 範囲外を隠す */line-height: 1.5;cursor: pointer;}.hover-text span {display: inline-block;transform: translateX(0); /* 初期状態: 表示位置 */transition: transform 0.3s ease; /* アニメーションを滑らかに */}.hover-text span:nth-child(2) {width: 100%;height: 100%;position: absolute;left: 100%;}.hover-text:hover span {transform: translateX(-100%); /* ホバー時にスライド */}
注意事項
今回紹介したコードは、ホバー前とホバー後のテキストが同じであることを前提に作成しています。
ホバー前のテキストより、ホバー後のテキストが多くなる場合上手く動作しないため、別途対応が必要です。
HTML・CSS入門におすすめの1冊
リンク

もみじ
Web製作未経験でも読みやすい構成で、初学者でも安心して学習することができます。
実践的な内容を学ぶことができ解説も丁寧で分かりやすく、基礎的な内容はこの1冊で学ぶことができます。