0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

今回は、前回に引き続き、Chapter4のCSSとJavaScriptを組み合わせた、要素の非表示と切り替えについて復習していきます。

チェックしたらクリックできるボタン

See the Pen チェックしたらクリックできるボタン by Uka Suzuki (@uukasuzuki_) on CodePen.

全体のコード解説

<input id="btn" type="submit" value="送信する" disabled />
#btn {
  background: #0bd;
  padding: 0.75rem 1rem;
  cursor: pointer;
  border-top-left-radius: 3px;
  border-top-right-radius: 3px;
  border-bottom-left-radius: 3px;
  border-bottom-right-radius: 3px;
  width: 150px;
}

#btn:disabled {
  background: #ccc; /* 無効状態では背景をグレーにする */
}
  • disabledとは、HTMLの属性です。ボタンやフォーム要素が「無効状態」であることを指定するために使われます。この属性を持つ要素は、ユーザーが操作できなくなり、CSSを使ってその状態にスタイルを適用することができます。

  • 一方、CSSにはdisabledという疑似クラスがあります。これは、HTML要素にdisabled属性が設定されている状態に対してスタイルを指定するために使用されます。上記の例では、disabled属性が設定されたボタンの背景色がグレーになり、文字の色が薄く設定されます。

JavaScriptのコード解説

const isAgreed = document.querySelector("#check");
const btn = document.querySelector("#btn");

isAgreed.addEventListener("change", () => {
  btn.disabled = !isAgreed.checked;
});
  • document.querySelector("#check")は、HTMLのid="check"がついている要素(ここではチェックボックス)を取得します。変数isAgreedにその要素を代入します。

  • document.querySelector("#btn")では、id="btn"のついたボタン要素を取得し、変数btnに代入します。

  • isAgreed.addEventListener("change", ...)は、チェックボックスにchangeイベントを設定します。これは、チェックボックスの状態が変わったときに(チェックされた、または外された)実行されます。
btn.disabled = !isAgreed.checked;
  • btn.disabledは、ボタンが無効 (disabled) かどうかを指定するプロパティです。trueにするとボタンは無効になり、クリックできなくなります。

  • isAgreed.checkedとは、チェックボックスがチェックされているかどうかを確認するプロパティです。trueならチェックされており、falseならチェックされていません。

まとめ

今回は、CSSと組み合わせたJavaScriptの切り替えを学びました。次回は、ページスクロールの仕組みについて、まとめていきます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?