MENU

2月19日〜2月26日の学習内容

目次

モーダル(アニメーションなし・あり)

dialogタグを使用したモーダルウィンドウの作成。


htmlファイル内、dialogタグで囲った部分をJavascriptではshowModal()表示、close()で非表示できる優れもの。

dialogタグを使用するとウィンドウを開いた状態でESCキーを押すとウィンドウが閉じる機能が標準搭載されている。

dialog にはaria-labelを使用してアクセシブルな名前をつけなければならない。

モーダルウィンドウの背景はcssファイル内で「クラス名::backdrop」で指定可能。

表示されるモーダルウィンドウは黒枠で囲われるため、この黒枠が不必要な場合はcssでdialog(クラス名)にborder: none; をいれる。

ハンバーガーメニュー(アニメーションなし・あり)

dialog タグを使用したハンバーガーメニューを作成。

(dialog)クラス名::dropback はdisplay:noneと設定してしまい、dialogタグで表示するメニューパネル自体に装飾してしまうととても楽にできる。

jsで

document.documentElement.style.overflow = "hidden"

上記コードを入力し背景固定を念の為入れていたが、overflowだけだとiPhoneのSafariで固定されない。一時期されていた時期もあったが、またされなくなったりと不安定でらしい。
iPhoneのSafariの固定は捨てるか、しっかり対応するならここを参考にする。

背景固定の方法

https://ics.media/entry/221024/

タブメニュー

htmlファイル:
タブに相当する部分はは<ul><li>内に、紐づくテキストはコンテナーを作成してまとめて後に書く。data-○○○=”▲▲▲”でjs内でタブとコンテナーを紐付けして表示させる。

cssファイル:
テキストを内包したコンテナーはdisplay:noneで読み込まない状態に。is-openなどのクラスがついたものだけdisplay:block; の形にして表示させるようにする。

jsファイル:
querySelectorAllで必要な要素を全て取得。forEachで繰り返しの指定をし、イベントが発生したらクラス名を加えたり(add())、外したり(remove())することで表示・非表示を操作する。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

40代女性。2023年よりWeb制作の学習を開始。
会社員(エンジニアの端くれ。色々あって現在休職中)、妻、母などの顔を使い分けて生活中。
好きなもの・好きなこと:
餃子・コーヒー・猫(でも猫アレルギー)・音楽鑑賞・ゆるいアニメ

目次