0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

モバイルっぽいハンバーガー・メニューのテンプレ

Last updated at Posted at 2020-08-14

はじめに

モバイルっぽいハンバーガー・メニューのテンプレ(HTML/CSS/JS)を作ってみた

スクリーンショット

mobile-app-template

コード

メモ

  • ハンバーガーメニューを引き出す → メイン画面の幅が短くなる → テキストがあると、めっちゃ折り返す → かっこわるい → メイン画面もスライドさせた
メニューに合わせてメイン画面もスライド
function openNav() {
  document.getElementById("mySidenav").style.width = "180px";
  document.getElementById("main").style.left = "180px";  // ここ
  document.body.style.backgroundColor = "rgba(0,0,0,0.4)";
}
  • 初回のハンバーガーメニュークリック → ハンバーガーメニューを引き出すときのアニメーションに 0.3sdelay があるが、その間にメイン画面がだけが先に動いてしまう(スライドのアニメーションをしない)1 → メニューの 0.3s 遅れの間、背景の白が見えてしまう → かっこわるい → アニメーション前の初期値を入れて解決
# main {
  position: relative;
  transition: 0.3s;
  left: 0; /* ここ */
}

学び

  • これくらいであれば、CSSフレームワークを使わない方が良い(Flexboxすらわかっていない初心者がリッチなフレームワークを下手に使うとかえって時間がかかる)
  • 初心者がこういうのを作ろうとしたときに、そもそも名前がわからないのでサンプルコードをググることすらできない。今回のようなメニューを Drawer Menu Off Canvas Menu というらしく、これでググるとよい

お世話になったサイト

今後

  • モバイルのWebアプリつくる
  • テンプレはもう少し汎用性を高める
  • Overscroll.js あたり盛り込みたい
  1. CSSのtransitionがうごかなかった失敗談 の内容でした。ありがとうございます

0
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?