ブログBlog

DOM要素の取得

投稿日:2022年01月06日 テクノロジー

こんにちは、前田です。
jsでモーダルを実装したのですが、スクロールするとモーダル下の背景までスクロールしてしまうということで、モーダル表示中は後ろの背景をスクロールさせないようにする必要があります。
単純にモーダル表示と同じタイミングで背景に
overflow:hiddenを付与し、閉じたタイミングで
oberflow:autoさせればよいと思いその通り実装しました。 ここで一つ考えることになったのは、背景の要素を取得する場合に、getElementsByTagName(‘body’)だとエラーになってしまうので、bodyタグにidを付与し、getElementById(‘id名’)で取得すると期待通りの結果が返ってきたところです。
これは、getElementByIdが単体取得なのに対し、getElementsByTagNameは要素が配列になって取得されるので(たとえその要素が一つしかなくてもです)、配列にstyle.overfowしてもうまく動かないよということですね。
最近はjqueryに慣れすぎて、初歩的なところですが私も一瞬だけあれ?となってしまいました。
js習いたてだと躓きそうな方が多そうですね。
PAGE TOP