【jQuery】可視領域に入ると蛍光ペンが伸びるアニメーション

【jQuery】可視領域に入ると蛍光ペンが伸びるアニメーション

ページをスクロールして、可視領域に入ると、蛍光ペンが引かれていく様なアニメーションをご紹介します。

可視領域に入ると蛍光ペンが伸びるアニメーション方法

HTML
<span class="marker">
ここに蛍光ペンで引いたような線をつけたいテキストをいれる
</span>

HTMLはclass=”marker”としています。

CSS
.marker.active{
  background-position: -100% .7rem;
}

.marker {
  background-image: -webkit-linear-gradient(left, transparent 50%, #ffb7ee 50%);
  background-image: -moz-linear-gradient(left, transparent 50%, #ffb7ee 50%);
  background-image: -ms-linear-gradient(left, transparent 50%, #ffb7ee 50%);
  background-image: -o-linear-gradient(left, transparent 50%, #ffb7ee 50%);
  background-image: linear-gradient(left, transparent 50%, #ffb7ee 50%);
  background-repeat: repeat-x;
  background-size: 200% 100%;
  background-position: 0 .7rem;
  transition: all 2s ease;
}

背景色の高さを変えたい時は、
.marker.activeと、.markerの
background-position: -100% .7rem;の『.7rem』を調整します。

jQuery
$(window).scroll(function (){
 $(".marker").each(function(){
   var position = $(this).offset().top; 
   var scroll = $(window).scrollTop(); 
   var windowHeight = $(window).height(); 
   if (scroll > position - windowHeight){ 
     $(this).addClass('active'); 
   }
 });
});

可視領域に入ったら、activeを付与します。

実装結果

offset().topとは

offset().topとは、画面上からHTML要素までの縦方向の距離になります。
(今回の場合、.markerとの距離)

offset().leftは、画面左からHTML要素までの横方向の距離になります。

scrollTop()とは

scrollTop()とは、スクロール量を取得します。

offset().topとscrollTop()はフェードインや、ページトップボタンを実装する際にも使うことが多いです。

いろいろと応用出来そうですね。

他にもあるよ。関連記事

人気記事

人気記事

最新記事

ブログカテゴリー

タグ

プロフィール

プロフィール画像

猫田 ねこ

パチンコ店勤務からweb制作会社へ転職という異色の経歴。漫画大好き。アニメ大好き。パチンコ大好きな、ねこです。

利用規約  お問い合わせ

ページトップへ