もくじ
本記事では、複数行対応のホバー時のテキストスライドアニメーションの実装方法を紹介します。
上下左右のスライドに対応しています。
ホバー時に下から上にスライドするアニメーション
サンプル
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冊で学ぶことができます。