jQueryとCSSで指定したテキストに対してラインマーカーを引く方法
サイト内で強調したいテキストに対して蛍光ペンでマーカーを引くようなアニメーションを実装しているサイトを見かけることがある。また、ページスクロールし当該テキスト部分が表示された時点でマーカーが引かれるという仕様。調べてみたところjQueryとCSSで実装できた。以下に実装方法をメモ。
サンプル
https://taitan916.info/sample/text_marker/
ソースコード
<!DOCTYPE html>
<html lang="ja">
<head>
<title>jQueryとCSSで指定したテキストに対してラインマーカーを引くサンプル</title>
<style>
.marker{
display: inline;
position: relative;
background-image: linear-gradient(90deg, #ff6, #ff6);
background-repeat: no-repeat;
background-position: bottom left;
background-size: 0 40%;
transition: all 1s ease-in-out;
}
.marker.active{
background-size: 100% 40%;
}
.mb-200{
margin-bottom:200px;
}
</style>
</head>
<body>
<div class="mb-200">
テキスト
</div>
<div class="mb-200">
テキスト
</div>
<div class="mb-200">
テキスト
</div>
<div class="mb-200">
<span class="marker">
マーカーテキストマーカーテキストマーカーテキストマーカーテキストマーカーテキストマーカーテキスト
</span>
</div>
<div class="mb-200">
テキスト
</div>
<div class="mb-200">
<span class="marker">
マーカーテキストマーカーテキストマーカーテキストマーカーテキストマーカーテキストマーカーテキスト
</span>
</div>
<div class="mb-200">
テキスト
</div>
<script type="text/javascript" src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
<script>
$(window).scroll(function (){
$(`.marker`).each(function(){
if( $(window).scrollTop() > $(this).offset().top - $(window).height() ){
$(this).addClass(`active`);
}
});
});
</script>
</body>
</html>
マーカーを引きたいテキストを.markerで囲むこと。
関連記事
-
-
javascriptやjQueryで画像を書き換えても変わらない場合
けっこう前に画像をアップロードしてリアルタイムにプレビューする機能を作った時に、 ...
-
-
jQuery UIでカレンダーピッカー(Datepicker)の利用方法
フォーム等で日付を入力する際にカレンダーピッカー機能を実装することがある。その際 ...
-
-
jQueryプラグインの作成
面白そうだったのでメモ。 ■参考サイト http://www.entacl.in ...
-
-
jQueryの通知メッセージ用ライブラリ「Toastr」の利用方法
あるサイトのソースコードを拝見しているとToastrというJSファイルをCDNで ...
-
-
jQueryで後から追加された要素にイベントを設定
jQueryで.html()等を使って追加した要素に対してイベントを設定したかっ ...