CSSのlinear-gradient
を使うことで、蛍光ペン風のマーカーを引くことができますね。
そのままでも使えますが、今回はマウスホバー時にマーカーを引くようなアニメーションを実装してみました。
以下のDEMOにマウスカーソルを当ててみてください。(スマホの場合はタップ)
ホバーすると蛍光ペン風マーカーが引かれます。
ホバーすると蛍光ペン風マーカーが引かれます。文章が改行する場合でも、最後までマーカーを引くことができます。
テキストリンクに何らかのアニメーションをつけたい時などに使えそうですね。
コピペ用の実装コードと解説をしていきますので、ぜひ真似してみてください。
【コピペ用】マウスホバー時に蛍光ペン風のマーカーを引く実装コード
<p><span class="marker">テキストを入れてください。</span></p>
/* マーカー通常時 */
.marker {
display: inline;
background-image: linear-gradient(90deg, #fcf69f, #fcf69f); /* マーカーの色を指定 */
background-repeat: no-repeat;
background-position: left bottom; /* マーカーの発生位置を左下に設定 */
background-size: 0 40%; /* マーカーの横幅 / 縦幅 */
transition: all 0.8s ease; /* マーカーを引く速度 */
cursor: pointer; /* ホバー時のカーソルをポインターにする */
}
/* マーカーホバー時 */
.marker:hover {
background-size: 100% 40%; /* マーカーの横幅を100%にする */
}
これらのコードをコピペするだけで、すぐにお使いいただけます。
次の章でコードの解説をしていきますので、カスタマイズしたい・コードを理解したいという方はぜひ読んでみてください。
【解説】マウスホバー時に蛍光ペン風のマーカーを引く実装コードの解説
HTMLとCSSをそれぞれ別々に解説していきます。
HTML
<p><span class="marker">テキストを入れてください。</span></p>
テキストをspan
タグで囲み、marker
クラスをつけます。
テキストにリンクを設定したい場合は、a
タグを使用してください。
<a href="リンク先のURLを記入"><span class="marker">テキストを入れてください。</span></a>
これでHTMLは終了です!
CSS
/* マーカー通常時 */
.marker {
display: inline;
background-image: linear-gradient(90deg, #fcf69f, #fcf69f); /* マーカーの色を指定 */
background-repeat: no-repeat;
background-position: left bottom; /* マーカーの発生位置を左下に設定 */
background-size: 0 40%; /* マーカーの横幅 / 縦幅 */
transition: all 0.8s ease; /* マーカーを引く速度 */
cursor: pointer; /* ホバー時のカーソルをポインターにする */
}
/* マーカーホバー時 */
.marker:hover {
background-size: 100% 40%; /* マーカーの横幅を100%にする */
}
CSSでは、注意するポイントやカスタマイズ可能な箇所を説明していきます。
displayプロパティの値はinlineにしておく
.marker {
display: inline;
}
まずdisplay
プロパティは、inline
にしておきます。
この部分がinline
以外だと、文章全体にマーカーを引くことができません。
■display: inline
の場合
テキストをホバーしてみてください。displayがinlineの場合は、文章全体にマーカーを引くことができます。
■display: inline-block
の場合
テキストをホバーしてみてください。displayがinline以外の場合は、文章全体にマーカーを引くことができません。
inline
以外だと、文章一行一行ではなくボックス全体にマーカーが引かれてしまいます。
なのでdisplay: inline
を忘れずに指定しておきましょう。
linear-gradient()にはマーカーの色を指定する
.marker {
background-image: linear-gradient(90deg, #fcf69f, #fcf69f); /* マーカーの色を指定 */
}
#fcf69f
と指定している2箇所に、好きな色を記入してください。
2箇所に同じ色を指定すると単色、違う色を指定すると複数色のマーカーをつくることができます。
background-sizeにマーカーの太さを指定する
.marker {
background-size: 0 40%; /* マーカーの横幅 / 縦幅 */
}
background-size
の値には、横幅・縦幅の順番でマーカーのサイズを指定できます。
まず横幅ですが、ホバー時以外はマーカーを非表示にしたいので0
にしておきましょう。
次に縦幅には40%
を指定していますが、ここには好きな高さを指定してください。
%
だけでなくpx
やem
などの単位も使用可能です。
ホバー時に横幅を100%にしてマーカーを表示する
/* マーカーホバー時 */
.marker:hover {
background-size: 100% 40%; /* マーカーの横幅を100%にする */
}
初期状態では、background-size
の横幅の値を0
にしておきましたね。
この値をホバー時に100%
にすることで、マーカーが引かれるという仕組みになっています。
transitionにマーカーを引く速度を指定する
.marker {
transition: all 0.8s ease; /* マーカーを引く速度 */
}
0.8s
の箇所に、マーカーを引くまでの時間を指定してください。
数値を大きくするとマーカーを引く速度が遅くなり、小さくすると早くなります。
以上、CSSの注意点やカスタマイズ箇所の解説でした!
【まとめ】マウスホバー時に蛍光ペン風のマーカーを引く方法
ホバーすると蛍光ペン風マーカーが引かれます。
ホバーすると蛍光ペン風マーカーが引かれます。文章が改行する場合でも、最後までマーカーを引くことができます。
今回は、ホバー時に蛍光ペン風のマーカーを引くアニメーションの実装方法を紹介しました。
CSSの擬似要素を使う方法がよく紹介されていますが、今回の実装ではグラデーションを使用しているので、改行が起こる場合でも対応可能です。
テキストリンクにアニメーションをつけたい時には、是非使ってみてください!
グラデーションマーカーについて詳しく知りたい方は、以下の記事で解説しています。
今回の記事ではホバー時にマーカーを引く方法を紹介しましたが、テキストが画面内に入ると同時にマーカーを引く方法も別記事で紹介しています↓
コメント