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で囲むこと。
関連記事
-
-
jQueryで後から追加された要素にイベントを設定
jQueryで.html()等を使って追加した要素に対してイベントを設定したかっ ...
-
-
国土地理院のAPIを使用して無料でジオコーディング(住所→経度緯度)を行う方法
GoogleMapAPIでジオコーディングをするには、支払い情報を登録したアカウ ...
-
-
「slick」でarrows(次に進む・前に戻るボタン)を設定しても表示されない場合の対応方法
「slick」で画像スライダーを表示する際にarrows(次に進む・前に戻るボタ ...
-
-
jQueryプラグインの作成
面白そうだったのでメモ。 ■参考サイト http://www.entacl.in ...
-
-
jQueryでimgタグのsrcを変える
やりたかった事はイベントに応じてimgタグの src内のURLを変更。attrを ...