勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

jQueryとCSSで指定したテキストに対してラインマーカーを引く方法

  jQuery JavaScript 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 JavaScript CSS

  関連記事

ライブラリ等を使用せずファイルをドラッグ&ドロップでアップロードする方法
ライブラリ等を使用せずファイルをドラッグ&ドロップでアップロードする方法

formにドラッグ&ドロップでファイルをアップロードする機能を実装する場 ...

jQueryのプラグインで簡単にイメージスライダーを作成(bxslider)
jQueryのプラグインで簡単にイメージスライダーを作成(bxslider)

画像のスライダーを作る時に便利なプラグインであるbxslider。簡単に使えるし ...

簡単にtable内をソート
簡単にtable内をソート

やりたかった事は、 ・テーブル内でのソート ・内容は文字、数値、日時 ・PHPじ ...

表示範囲を自由に変更可能な折れ線グラフが表示できるJSライブラリ amCharts の使用方法
表示範囲を自由に変更可能な折れ線グラフが表示できるJSライブラリ amCharts の使用方法

どこかのサイトを閲覧していた際に、恐らくはJavaScriptのライブラリで描写 ...

PHPとajaxでチャットの作成
PHPとajaxでチャットの作成

■ソース ・index.php <? error_reporting(E_ ...