ハンバーガーバーメニューをクリックしたら閉じるようにしようとしています。
現在以下のしていますが、閉じず、クリックしてもスクロールして動いています。
「a class="scroll"」がいけないのか、解決法等教えて頂きたくどうぞよろしくお願い致します。
/*HTML*/
<div class="container">
<button class="btn-nav">
<div class="label">MENU</div>
<div class="bar arrow-top-r"></div>
<div class="bar arrow-middle-r"></div>
<div class="bar arrow-bottom-r"></div>
</button>
<nav class="nav-container hidden hideNav">
<ul class="nav-list">
<li class="list-item"><a class="scroll" href="#home">ホーム</a></li>
<li class="list-item"><a class="scroll" href="#principles">AAA</a></li>
<li class="list-item"><a class="scroll" href="#about">BBB</i></a></li>
<li class="list-item"><a class="scroll" href="#gallery">CCC</a></li>
</ul>
</nav>
</div>
<script>
$(document).ready(function () {
$(".nav-list li a").click(function(event) {
$(".nav-container").hide();
});
});
</script>
No.1ベストアンサー
- 回答日時:
script の中,$(".nav-list li a") ではなくて,$(".btn-nav") とかにしないと,
アイテムをクリックしたときに閉じるようになっていますよ。
そもそも何をクリックしても閉じないのであれば,jQuery を読み込んでいないのでは?
$(...) を使っているってことは jQuery を想定していますよね。
早速ありがとうございます。
ご指摘のとおり、jQueryの読み込み前にスクリプトを書いていたのでjQueryの後に移動させました。
$(".btn-nav") にするとアコーディオンをクリックした際、開かずそのまま閉じたままでした。
$(".nav-list li a")にすると選択した後ページ移動し、アコーディオンも閉じたのですが、その後、再度アコーディオンをクリックすると開かず閉じたままとなりました。(アイテムをクリックした後閉じるようにしたいと思っています)
何かその他確認する箇所などございましたらどうぞよろしくお願い致します。
No.2
- 回答日時:
script に開く処理を記述しないと開かないですよ。
hide で隠す処理しかしていないですよね。
最終的に実装したいものがどういうものか分かっていないのですが,
「アイテムをクリックすると閉じる,MENUをクリックすると開く」という処理にするなら,
最も単純なもので,
<script>
$(document).ready(function () {
$(".nav-list li a").click(function(event) {
$(".nav-container").hide();
});
$(".btn-nav").click(function(event) {
$(".nav-container").show();
});
});
</script>
みたいな感じではないですか?
急に現れるようになっていますが,jQueryを使っているならslideToggleを使うと
スライドして開くので,少し見た目がよくなると思います。
早速ありがとうございます。元々あるテンプレートを変更しながら使用しています。
そもそもの作りがslideToggleというものであったのかもと見てみたところ@keyframesというのでCSSで開閉しているように思いました。@keyframes の使い方がよく分からず、調べているところです。
何かいいアイディアがございましたらどうぞよろしくお願い致します。
>「アイテムをクリックすると閉じる,MENUをクリックすると開く」という処理にするなら,
まさにそのようにしたいと思っています。
----
@keyframes
showNav { from {
left: -100%;
}
to { left: 0; }
}
@-webkit-keyframes
showNav { from {
left: -100%;
}
to { left: 0; }
}
@-moz-keyframes
showNav { from {
left: -100%;
}
to { left: 0; }
}
@-o-keyframes
showNav { from {
left: -100%;
}
to { left: 0; }
}
.showNav {
-webkit-animation: showNav .5s ease forwards;
-moz-animation: showNav 1s ease forwards;
-o-animation: showNav 1s ease forwards;
animation: showNav .5s ease forwards;
position:fixed;
z-index:998;
}
.hideNav {
-webkit-animation: hideNav 1s ease forwards;
-moz-animation: hideNav 1s ease forwards;
-o-animation: hideNav 1s ease forwards;
animation: hideNav 1s ease forwards;
position:fixed;
}
.hidden {
display: none;
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS テキストを画面の真ん中に配置したいです。 2 2022/11/25 16:11
- PHP アコーディオンPHPが上手くいかない 3 2022/07/15 16:29
- その他(IT・Webサービス) html cssについて 3 2023/05/13 12:48
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- PHP style.cssのjQuery条件付きcssが機能しない 4 2022/07/17 18:27
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
- HTML・CSS htmlについて質問です! 写真のように写真の部分が?になってしまいます。 ファイルもしっかり選べて 1 2023/07/09 21:17
- Perl RSSにdiv,ul classを付けたいのですがどのようにつけるのかわからないです 2 2022/03/28 01:53
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラム言語について。
-
VBAでパワーシェルを実行したい...
-
C#とC++について。
-
CLispのloop内の挙動について
-
interface 2021年5月号 P46
-
VBA 電話番号の正規表現について
-
Windowsのアプリ開発ってなんの...
-
プログラミングのPythonのnoteb...
-
vba クリップボードクリアにつ...
-
ImageMagickでgif画像の一部が...
-
ExcelVBAでFormulaR1C1を列範囲...
-
pythonにてseleniumを使うも、...
-
ホワイトハッカー
-
小学1年生の子です。塾に行かせ...
-
pythonで複数画像からgifを作る...
-
ハッシュテーブル(連想配列)が...
-
httpリクエストの送り元の特定
-
楽しくて最高のプログラミング...
-
プログラミング
-
家庭のパソコンで Python の 環...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
HP 画像の一部にリンクでその...
-
htmlの文字が縦書きになる
-
【ヒトの神秘】美男美女から何...
-
htmlのolやulなどlistにtitleや...
-
<h1>、<h2>と<p><div>の行間を...
-
HTML属性での「""」 「''」違い
-
超音波で洗脳。
-
widthやheightの数値に単位(px...
-
ボタンをセル内一杯に表示させ...
-
div要素が重なってします
-
リストマーカーをボックス内に...
-
質問1.
-
<div id="container">の使いか...
-
リンクを知らせる手のマークが...
-
画像イメージの上下左右、欲し...
-
複数のボタンを等間隔に、かつ...
-
smallにtext-allignが効かない
-
css初心者 フレックスボックス...
-
含む含まないという概念自体の...
-
idの中のid指定
おすすめ情報
すみません。自己レスです。見当違いなことを書き込んでいました。
ソースの中にすでに以下ありました。
これを改造していけばいいのかと思いました。
引き続きみていきます。
$(window).load(function() {
$(".btn-nav").on("click tap", function() {
$(".nav-container").toggleClass("showNav hideNav").removeClass("hidden");
$(this).toggleClass("animated");
});
自己レスです。先ほどの補足コードに以下を追加したら、リンク先をクリックしたら閉じて、ハンバーガーバーをクリックしたら開くようになりました。ありがとうございました。
$(".nav-list li a").on("click tap", function() {
$(".nav-container").toggleClass("showNav hideNav").removeClass("hidden");
$(this).toggleClass("animated");
});