JavaScript

【JavaScript】focusイベントとは?フォーカスされた時に処理を行う

こちらの記事では、JavaScriptのfocus(フォーカス)イベントについてサンプルコードを用いて分かりやすく解説しています。

JavaScriptの学習におすすめ参考書
改訂3版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで

本書情報
出版社技術評論社
著者山田 祥寛
発売日2023/2/13
ページ数624ページ
レビュー
(Amazon)
(4件)
先輩くん
先輩くん
10万部突破したJavaScriptの本が大幅増補改訂し7年ぶりに発売されたよ!
後輩ちゃん
後輩ちゃん
最新の基本文法から、開発に欠かせない応用トピックまで学ぶことが出来るよ!

綺麗なコードが書けるようになる!
リーダブルコード-より良いコードを書くためのシンプルで実践的なテクニック

本書情報
出版社オライリージャパン
著者Dustin Boswell / Trevor Foucher
発売日2012/6/23
ページ数260ページ
レビュー
(Amazon)
(620件)
先輩くん
先輩くん
より良いコードを書きたい人におすすめの本だよ!
後輩ちゃん
後輩ちゃん
10以上前の書籍ですが、内容は今でも役に立つものばかりです!

focusイベントとは

focusイベントとは、ユーザーがテキストフィールドやテキストエリアなどに対してフォーカスした時(クリックやキーボードのTabキー)のタイミングで実行されるイベントです。

同じフォーカス系イベントである、blurイベント(フォーカスが一度された状態から外れた時に実行される)とは対照的のイベントになります。

focusイベントの使い方

focusイベントは「addEventListenerメソッド」「onfocusプロパティ」「onfocus属性」の3つの書き方があります。
▼トリガーになる要素を取得(addEventListenerとonfocusプロパティで使用)
const elem = document.getElementById('js-elem'); // トリガーになる要素を取得

▼addEventListenerメソッド
elem.addEventListener('focus',function(){ // 第一引数にfocusを指定
  // 処理を記述
});

▼onfocusプロパティ
elem.onfocus = function(){
  // 処理を記述
};
▼onfocus属性
<form>
  <input type="text" placeholder="テキストを入力してください" onfocus="focusEvent();">
</form>

<script>
function focusEvent(){
  // 処理を記述
}
</script>

サンプルコード

こちらで紹介するサンプルコードは、テキストフィールドにフォーカスをあてると背景色が水色に変化します。

※一度フォーカスをあててしまうと、背景色が水色のままになってしまうためサンプルコード内にフォーカスが外れた時に背景色を戻す処理を追加しています。

実行結果

<form>
  <input id="text" type="text" placeholder="テキストを入力してください">
</form>

<script>
window.addEventListener('DOMContentLoaded',function(){
  const text = document.getElementById('text'); // ①
  
  text.addEventListener('focus',function(e){ // ②
    e.target.style.background = "#9DCCE0"; // ③
  });
  text.addEventListener('blur',function(e){
    e.target.style.background = "";
  });
});
</script>
サンプルコード解説

  1. focusイベントを設定する対象のテキストフィールド要素を取得
  2. addEventListenerメソッドの第一引数にfocusを指定
  3. focusイベントが実行された時に背景色を水色に変化させる

ブログランキング・にほんブログ村へ PVアクセスランキング にほんブログ村