質問編集履歴

7

試したことの追記

2020/07/24 01:08

投稿

keisuke95
keisuke95

スコア0

test CHANGED
File without changes
test CHANGED
@@ -349,3 +349,73 @@
349
349
  参考にしたサイトです。```https://tech-dig.jp/hamburger-global-nav/
350
350
 
351
351
  ```
352
+
353
+
354
+
355
+
356
+
357
+ ### 試したこと
358
+
359
+
360
+
361
+ aタグにclass="close"を追加し、JavaScriptでclass="close"を取得しリンクをクリックした時に.nav-openのクラスを削除しハンバーガーメニューを閉じる。
362
+
363
+ これを試してみましたがエラーが出てしまいました。コードの書き方など間違っている可能性があります。
364
+
365
+ エラー↓
366
+
367
+ index.html:437 Uncaught TypeError: target.addEventListener is not a function at toggleNav (index.html:437)at index.html:442
368
+
369
+
370
+
371
+ 変更点↓
372
+
373
+ css
374
+
375
+ <li class="nav-item"><a href="#campaign" class="close">campaign<span class="jp">キャンペーン</span></a></li>
376
+
377
+
378
+
379
+ JavaScript
380
+
381
+
382
+
383
+ function toggleNav() {
384
+
385
+ var body = document.body;
386
+
387
+ var hamburger = document.getElementById('js-hamburger');
388
+
389
+ var blackBg = document.getElementById('js-black-bg');
390
+
391
+
392
+
393
+ hamburger.addEventListener('click', function() {
394
+
395
+ body.classList.toggle('nav-open');
396
+
397
+ });
398
+
399
+
400
+
401
+ blackBg.addEventListener('click', function() {
402
+
403
+ body.classList.remove('nav-open');
404
+
405
+ });
406
+
407
+
408
+
409
+ //追加したコード
410
+
411
+ let target = document.getElementsByClassName('close');
412
+
413
+ target.addEventListener('click', function() {
414
+
415
+ body.classList.remove('nav-open');
416
+
417
+ });
418
+
419
+ }
420
+
421
+ toggleNav();

6

追記

2020/07/24 01:08

投稿

keisuke95
keisuke95

スコア0

test CHANGED
File without changes
test CHANGED
@@ -10,9 +10,7 @@
10
10
 
11
11
 
12
12
 
13
- <li class="nav-item">の中のaタグをクリックした時にJavaScriptで付与した.nav-openのクラスを削除するという動きだとは思うのですが
13
+ おそらく、<li class="nav-item">の中のaタグをクリックした時にJavaScriptで付与した.nav-openのクラスを削除するという動きだとは思うのですが、どのように記述すればいいか教えていただきたいです。
14
-
15
- どのように記述すればいいか教えていただきたいです。
16
14
 
17
15
 
18
16
 

5

追記

2020/07/23 23:38

投稿

keisuke95
keisuke95

スコア0

test CHANGED
File without changes
test CHANGED
@@ -8,6 +8,10 @@
8
8
 
9
9
  ハンバーガーメニューのHTML、CSS、JavaScriptは一部ネットからのコピペがあります。他にも調べたのですが閉じるための記述が現状分かりません。
10
10
 
11
+
12
+
13
+ <li class="nav-item">の中のaタグをクリックした時にJavaScriptで付与した.nav-openのクラスを削除するという動きだとは思うのですが
14
+
11
15
  どのように記述すればいいか教えていただきたいです。
12
16
 
13
17
 

4

2020/07/23 23:38

投稿

keisuke95
keisuke95

スコア0

test CHANGED
File without changes
test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
 
8
8
 
9
- ハンバーガーメニューのHTML、CSS、JavaScriptは一部ネットからのコピペのため、閉じるための記述が分かりません。
9
+ ハンバーガーメニューのHTML、CSS、JavaScriptは一部ネットからのコピペがあります。他にも調べたですが閉じるための記述が現状分かりません。
10
10
 
11
11
  どのように記述すればいいか教えていただきたいです。
12
12
 

3

コードの追記

2020/07/23 22:00

投稿

keisuke95
keisuke95

スコア0

test CHANGED
File without changes
test CHANGED
@@ -252,6 +252,22 @@
252
252
 
253
253
  }
254
254
 
255
+
256
+
257
+ /*ページ内リンク位置調整(ヘッダーの高さ分)*/
258
+
259
+ .anchor{
260
+
261
+ display: block;
262
+
263
+ padding-top: 60px;
264
+
265
+ margin-top: -60px;
266
+
267
+ }
268
+
269
+
270
+
255
271
  ```
256
272
 
257
273
 

2

コードの追記

2020/07/23 21:04

投稿

keisuke95
keisuke95

スコア0

test CHANGED
File without changes
test CHANGED
@@ -264,6 +264,8 @@
264
264
 
265
265
  ```JavaScript
266
266
 
267
+ //ハンバーガーメニュー
268
+
267
269
  function toggleNav() {
268
270
 
269
271
  var body = document.body;
@@ -292,6 +294,32 @@
292
294
 
293
295
  toggleNav();
294
296
 
297
+
298
+
299
+ //ページ内リンク
300
+
301
+ $(function(){
302
+
303
+ $('a[href^="#"]').click(function(){
304
+
305
+ var speed = 500;
306
+
307
+ var href= $(this).attr("href");
308
+
309
+ var target = $(href == "#" || href == "" ? 'html' : href);
310
+
311
+ var position = target.offset().top;
312
+
313
+ $("html, body").animate({scrollTop:position}, speed, "swing");
314
+
315
+ return false;
316
+
317
+ });
318
+
319
+
320
+
321
+ });
322
+
295
323
  ```
296
324
 
297
325
 

1

コードの修正

2020/07/23 21:03

投稿

keisuke95
keisuke95

スコア0

test CHANGED
File without changes
test CHANGED
@@ -18,49 +18,51 @@
18
18
 
19
19
  ```HTML
20
20
 
21
-         <nav class="nav">
21
+ <nav class="nav">
22
-
22
+
23
- <ul class="nav-list">
23
+   <ul class="nav-list">
24
-
24
+
25
- <li class="nav-item"><a href="#campaign">campaign<span class="jp">キャンペーン</span></a></li>
25
+     <li class="nav-item"><a href="#campaign">campaign<span class="jp">キャンペーン</span></a></li>
26
-
26
+
27
- <li class="nav-item"><a href="#point">point<span class="jp">店舗の強み</span></a></li>
27
+     <li class="nav-item"><a href="#point">point<span class="jp">店舗の強み</span></a></li>
28
-
28
+
29
- <li class="nav-item"><a href="#facility">facility<span class="jp">施設紹介</span></a></li>
29
+     <li class="nav-item"><a href="#facility">facility<span class="jp">施設紹介</span></a></li>
30
-
30
+
31
- <li class="nav-item"><a href="#price">price<span class="jp">料金案内</span></a></li>
31
+     <li class="nav-item"><a href="#price">price<span class="jp">料金案内</span></a></li>
32
-
32
+
33
- <li class="nav-item"><a href="#faq">faq<span class="jp">よくあるご質問</span></a></li>
33
+     <li class="nav-item"><a href="#faq">faq<span class="jp">よくあるご質問</span></a></li>
34
-
34
+
35
- <li class="nav-item"><a href="#access">access<span class="jp">アクセス</span></a></li>
35
+     <li class="nav-item"><a href="#access">access<span class="jp">アクセス</span></a></li>
36
-
36
+
37
- </ul>
37
+   </ul>
38
-
38
+
39
+
40
+
39
- <ul class="btn-list">
41
+   <ul class="btn-list">
40
-
42
+
41
- <li class="btn-item"><a href="">WEB入会はこちら</a></li>
43
+     <li class="btn-item"><a href="">WEB入会はこちら</a></li>
42
-
44
+
43
- <li class="btn-item"><a href="">見学・体験予約はこちら</a></li>
45
+     <li class="btn-item"><a href="">見学・体験予約はこちら</a></li>
44
-
46
+
45
- <li class="btn-item"><a href="">お問い合わせ</a></li>
47
+     <li class="btn-item"><a href="">お問い合わせ</a></li>
46
-
48
+
47
- </ul>
49
+   </ul>
48
-
50
+
49
- </nav>
51
+ </nav>
50
52
 
51
53
 
52
54
 
53
- <div class="hamburger" id="js-hamburger">
55
+ <div class="hamburger" id="js-hamburger">
54
-
56
+
55
- <span class="hamburger__line hamburger__line--1"></span>
57
+   <span class="hamburger__line hamburger__line--1"></span>
56
-
58
+
57
- <span class="hamburger__line hamburger__line--2"></span>
59
+   <span class="hamburger__line hamburger__line--2"></span>
58
-
60
+
59
- <span class="hamburger__line hamburger__line--3"></span>
61
+   <span class="hamburger__line hamburger__line--3"></span>
60
-
62
+
61
- </div>
63
+ </div>
62
-
64
+
63
- <div class="black-bg" id="js-black-bg"></div>
65
+ <div class="black-bg" id="js-black-bg"></div>
64
66
 
65
67
 
66
68