勉強記録(2024/09/07)チェックボックスとスクロール量で変化するバー

使用教材

https://www.sbcr.jp/product/4815615758/

職業訓練校で使用していたもの。
引き続きこちら。

勉強内容

チェックボックス

inputタグにdisabled属性を付けたら、疑似クラス「:disabled」で無効時の状態を指定できる。

疑似クラスもいっぱいあるので、少しずつ覚えていこう。

クリック時にイベントを発生させる

イベントを'change'でなく'click'にしたらどうなるか検証。

isAgreed.addEventListener('click', () => {
  console.log('チェックされました');
});

結果、ちゃんと出た。
実際に使う際にはこれだと不具合とかあるんだろうか?

よくわかんない…。
しばらく調べてみたけど、ここ以外でそれっぽい説明してるところが見つからなかった。
とにかくclickではきちんと動かない可能性があるみたいなので、今はそこだけ覚えておこう。
ちなみにこれ↓でもtrueとfalseが出た。

isAgreed.addEventListener('click', () => {
  console.log(isAgreed.checked);
});

省略化

続き。if文で「チェックしたらdisabled(無効化)を無しに」「チェックを外したらdisabled(無効化)をありに」。
「===true」は省略可能。
あと「!==false」と意味は同じ。(こんな「裏の裏は表」みたいな書き方は基本しないだろうけど)
さらに、
「チェックがtrue → disabledをfalseに」
「チェックがfalse → disabledをtrueに」
なので、

isAgreed.addEventListener('change', () => {
  if(isAgreed.checked){
    btn.disabled = false;
  } else {
    btn.disabled = true;
  }
});

これが

isAgreed.addEventListener('change', () => {
  btn.disabled = !isAgreed.checked;
});

こうなる。うおー。
これは多分いろんなところで使いそうだ。

スクロール量で変化するバー

残り。スクロール量で変化するバー。
scrollHeightとclientHeightがごっちゃになりそう。内容自体に複雑さはないんだけど、計算部分でちょっと考えちゃう。

用事があるので、今日の分はこれで終わり。

この記事が気に入ったらサポートをしてみませんか?