【React】ハンバーガーメニュークリック時にスクロールできないようにする方法
どうも。へんじにゃ@hengin_blogです。
今回はReact
でハンバーガーメニューを押したときに背面を固定する方法をお伝えしていきます
Reactでハンバーガーメニューを押したときに背面を固定したい
ハンバーガーメニューを押したときに背面を固定するにはある一つのCSSプロパティを用いれば実現できます!
背面を固定するにはoverflow: hidden;
を用います
これをハンバーガーメニュークリック時にbody
タグに追加できれば作業は終了です
しかしReact
では基本的にApp.js
に記述していくため直接的にbody
をいじることが出来ません。。
そのため以下のようにしてbody
を操作します
useStateを用いる
const [active, setActive] = useState(false); if (active) { document.body.classList.add('active'); } else { document.body.classList.remove('active'); }
setActive
はHeader.jsx
にてハンバーガーメニューをクリックしたときにactive
がtrue
とfalse
で切り替わるようになっています
<div className={`hum ${active ? "active" : ""}`} onClick={() => setActive(!active)} >
bodyに.activeが追加される
onClick
よりbody
にactive
classが追加されるので、CSSを当てていきます
body.active { overflow: hidden; }
まとめ
シンプルにこういうDOM操作が分からなかったのでちょっと苦戦していましたが、なんてことないです
また、最近Sass
を始めたので少し記事にしようかなと考えているところです。。
最後まで閲覧頂きありがとうございました😂😂
参考になったら読者登録よろしくお願いいたします!!
読者登録返しします!!