Intersection Observer(要素表示タイミングで処理実行)

Intersection Observer APIの使い方について確認します。スクロールして要素が表示されたタイミングで処理を実行したいケースに活用できます。( 画像の遅延読み込み コンテンツの追加読み込み など)

利用可能ブラウザ

https://caniuse.com/#feat=intersectionobserver

IEではサポートされてないので、polyfillが必要です。
https://github.com/w3c/IntersectionObserver/tree/master/polyfill

Intersection Observerの使い方

// イベント発火時のコールバック関数
const callback = (entries, observer) => {
  entries.forEach(entry => {
    console.log(entry.target)
    console.log(entry.time)
    console.log(entry.isIntersecting)
    console.log(entry.intersectionRatio)
    console.log(entry.boundingClientRect)
    console.log(entry.intersectionRect)
    console.log(entry.rootBounds)
  })
}

// Intersection Observerのインスタンス生成
const options = {
  root: null,
  rootMargin: '0px',
  threshold: 0
}
const observer = new IntersectionObserver(callback, options)

// ターゲット要素を登録
const target = document.querySelector('#target')
observer.observe(target)

// observer.unobserve(target)  // 指定要素の監視をやめる
// observer.disconnect()  // 全要素の監視をやめる

IntersectionObserverコンストラクタ でインスタンス生成後、observeメソッド で対象要素を監視することができます。

IntersectionObserver で指定可能な options については、後述する動作例で説明します。

動作例

  • target1
    • threshold: 1.0 と指定しているため、要素が全て表示されたタイミングでコールバックが実行されます。
  • target2
    • rootMargin を指定して、要素が表示される前にコールバックを実行するようにしています。
  • target3
    • threshold を複数設定しています。
    • 要素の表示割合が 0% 25% 50% 75% 100% のタイミングでコールバックが実行されます。

参考

【エンジニア向け】仕事を見つける方法

転職する

転職エージェントを活用する

転職サイトの場合、自身でサイト上から企業を探す必要があります。 一方「レバテックキャリア」 などの転職エージェントの場合、エージェントが企業を紹介してくれます。エージェントが間に入ることにより、日程調整や、条件交渉などもサポートしてくれます。

転職ドラフトを活用する

転職ドラフト」は、 企業がITエンジニアをドラフトという形で指名するサービスです。年収が最初に提示されるなどのメリットがあります。 ただ、初回登録時にレジュメ作成が必要で、すでにエンジニア経験が豊富にあるエンジニア向けのサービスかと思います。 レジュメ作成が手間ですが、自身のキャリアを見直す機会になり、他の仕事探しにも役立つはずです。

エンジニア転職保証のあるスクールを活用する

ある程度、開発経験のあるかたであれば、独学で必要なスキルを身につけることができるはずです。ただ、別業種からエンジニアに転職したい場合など、1から独学で学ぶのはハードルが高いです。そういった方は、スクールの活用を検討しても良いと思います。 「TechAcademy」は、エンジニア転職保証コースを提供しています。給付金制度の対象講座として認定されているため、金銭面の負担も抑えることができます。

フリーランスとして活動する

レバテックフリーランス」「ITプロパートナーズ」「ギークスジョブ」は、フリーランスエージェントサービスです。 エージェントによって、支払いサイトなど細かい違いはありますが、まずは良い案件を見つけることが重要です。 登録自体は無料なので、複数エージェントに登録して、より多くの案件を紹介してもらうのがおすすめです。