忍者CODE

ログイン

7
ハンバーガーメニューを作ろう!

PHPの問題

jQueryAnimation

完了にする!
問題
今回はハンバーガーメニューを作りましょう!アイコンは別の回で作っているので今回は省かせていただきます。
自分の環境に書くコード
              <div class="icon" id="open">
  <span class="top bar"></span>
  <span class="middle bar"></span>
  <span class="bottom bar"></span>
</div>
<nav class="menus">
  <ul class="menu-list">
    <li><a href="#">ホーム</a></li>
    <li><a href="#">コンタクト</a></li>
    <li><a href="#">アクセス</a></li>
    <li><a href="#">ニュース</a></li>
  </ul>
</nav>
¥HTML¥
            
              body{
  margin: 0;
  padding: 0;
}
.icon{
  position: relative;
  width: 30px;
  height: 30px;
  background-color: #000;
  padding: 10px;
  cursor: pointer;
  z-index: 2;
}
.bar{
  position: absolute;
  width: inherit;
  height: 3px;
  background-color: #fff;
  border-radius: 5px;
}
.top{
  top: 28%;
}
.middle{
  top: 48%;
}
.bottom{
  top: 68%;
}
#close .top{
  transform: rotate(45deg);
}
#close .bottom{
  transform:rotate(-45deg);
}
.menus{
  background-color: #000;
  width: 300px;
  position: fixed;
  top: 0;
}
.menu-list{
  list-style: none;
}
.menu-list a{
  text-decoration: none;
  color: #fff;
  display: block;
}
.menu-list li{
  line-height: 2em;
}
¥CSS¥
            
              $(function () {
  $("body").on("click", "#open", function () {
    $(".top").animate({ top: "48%" }, 300),
    $(".bottom").animate({ top: "48%" }, 300, function () {
      $(".middle").animate({ opacity: 0 }, 0);
      $(".bar").css("transition", ".3s");
      $("#open").attr("id", "close");
    });
  });
  $("body").on("click", "#close", function () {
    $("#close").attr("id", "open");
    $(".middle").animate({ opacity: 1 }, 300, function () {
      $(".bar").css("transition", "none");
      $(".top").animate({ top: "28%" }, 300);
      $(".bottom").animate({ top: "68%" }, 300);
    });
  });
});
¥JavaScript¥
            
期待する画面
ログインして解答を見る
コードのアイコン

解答ソースコード

              $(function () {
  var iconHeight=$(".icon").innerHeight();
  var menuWidth=$(".menus").innerWidth();
  $(".menus").css({
    "padding-top":iconHeight,
    "left":-menuWidth
  });
  //ここからメニューアイコン
  $("body").on("click", "#open", function () {
    $(".bottom").animate({ top: "48%" }, 300, function () {
      $(".menus").animate({left:0},300);
    });
  });
  $("body").on("click", "#close", function () {
    $(".middle").animate({ opacity: 1 }, 300, function () {
      $(".menus").animate({left:-menuWidth},300);
    });
  });
});
¥JavaScript¥
            
答えのアイコン

解説

まずアイコンとメニュが重なっているのでメニュの上側を開けなければなりません。なのでアイコンの縦幅をinnerHeightで取得し、menuにpadding-topを用いてあけてあげます。そして次に初期状態ではメニュは隠れていなければならないのでleftで画面外左にメニュの横幅分移動させておきます。あとは簡単でメニュがクリックされた時、メニュを画面左からの距離を0にし、フェードイン。もう一度クリックされた時はその逆でフェードアウトさせれば終わりです。
twitterのアイコン
活動記録をTweetする

甲賀

なら実務レベルで使えるスキルを
体系的に学ぶことが可能です

Web制作学習は、決して楽ではありませんが
「正しい方向で」「コツコツ」と続ければ、
必ずスキルアップする事が可能です。

甲賀では、挫折せずに学習を継続するための
カリキュラム・サポート体制をご用意しています。

↓↓↓↓

ステップバイステップで
着実にスキルが身につくカリキュラム

  • step 01
    初心者でもよく分かる!
    Web制作の基礎の基礎
    • 1.知っておこうWeb制作に関する基礎知識の話

    • 2.HTMLの書き方や役割を基礎から学ぶマークアップ入門

    • 3.CSSで挫折しない為の基礎学習【超重要プロパティ】

    • 4.基礎を終えたらHTMLコーディングを鍛えよう(デザインから)

    • 5.初心者向けHTMLコーディング完全解説(STEP1総まとめ)

  • step 02
    真似して覚えるWeb制作
    (デザイン〜プログラミングまで)
    • 1.属性ってなに?などなどHTML,CSSの深堀り編

    • 2.デザイナーから直接学ぶ猫ちゃんサイトのデザイン解説

    • 3.鎧模写-YOROIMOSYA【銅の鎧】

    • 4.JavaScriptで学ぶプログラミングの基本のきほん【16項目】

  • step 03
    動きをつけたり、効率化!
    脱初心者を目指すためのスキルを学ぼう
    • 1.jQueryの基本的な使い方から応用まで【プラグイン解説あり】

    • 2.Web制作でCSSを簡単に書くためのSASS入門【小技あり】

    • 3.現場で使うCSS設計の考え方参考サイトを元に解説

    • 4.生のJavaScriptだけで英単語アプリを作ろう(音声読み上げ付き)

  • step 04
    ここまでくれば中級者!
    ちょこっと応用編のWeb制作
    • 1.JavaScriptの屋敷【鳳凰の間】

    • 2.JavaScriptで作るLINE風チャットボット

    • 3.コマンドラインとアプリ操作を同時に学べるGit【15選】

    • 4.EJSを使いコーディング力を中級者まで引き上げる

  • step 05
    実務で必須の制作スキル
    WordPressについて学ぶ
    • 1.鎧模写-YOROIMOSYA【銀の鎧】

    • 2.PHPを基礎から学びたい人向け14項目から学ぶ【入門】

    • 3.PHPで簡易的な掲示板を作ってみよう【コーディングあり】

    • 4.甘えを吹き飛ばす!WordPress開発

    • 5.WordPressで¥400,000の案件を徹底解説!

    • 6.WordPress有料テーマSnow Monkeyの解体書

甲賀を詳しく見る

プログラミングスキルが
一気に上がる!
有料級の解説動画19本
を今なら無料でGETできる!

忍者CODEの公式LINE登録後
LINE内にあるURLよりご覧になれます

  • プログラミング本気で学習してる方
  • もちろん完全無料で且つ手続き不要
  • 将来プログラミングで稼ぎたい方
  • 動画解説で真剣に学びたい方
スキルアップ動画をGET