teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

直接HTMLを追加

2019/05/16 10:40

投稿

Tatsurou
Tatsurou

スコア81

title CHANGED
File without changes
body CHANGED
@@ -8,6 +8,130 @@
8
8
  ### ソース
9
9
  https://codepen.io/aratamaru/pen/WBpmyr
10
10
 
11
+ ```ここに言語を入力
12
+ <!DOCTYPE html>
13
+ <html lang="ja">
14
+ <head>
15
+ <meta charset="UTF-8">
16
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
17
+ <meta http-equiv="X-UA-Compatible" content="ie=edge">
18
+ <title>Document</title>
19
+ </head>
20
+ <body>
21
+
22
+ <style>
23
+ @media print, screen and (max-width: 750px) {
24
+ .sp-nav-inner .footer-nav li a {
25
+ margin-left: 0;
26
+ }
27
+ }
28
+ ul.footer-nav li {
29
+ border-bottom: 1px solid #ccc;
30
+ }
31
+
32
+ ul.footer-nav li a {
33
+ margin-left: 16px;
34
+ color: white;
35
+ }
36
+
37
+ .sp-nav-inner ul.footer-nav li a {
38
+ color: #2a2a2a;
39
+ }
40
+
41
+
42
+ .sub-menu {
43
+ overflow: hidden;
44
+ }
45
+
46
+ @media print, screen and (max-width: 750px) {
47
+ .sub-menu li {
48
+ background: #ccc;
49
+ }
50
+ }
51
+
52
+ .sub-menu li a {
53
+ display: block;
54
+ margin-bottom: 14px;
55
+ margin-top: 14px;
56
+ }
57
+
58
+ @media print, screen and (max-width: 750px) {
59
+ .sub-menu li {
60
+ padding-left: 1em;
61
+ border-top: 1px solid;
62
+ }
63
+ }
64
+
65
+ </style>
66
+
67
+
68
+ <div class="sp-nav">
69
+ <div class="sp-nav-inner">
70
+
71
+ <ul class="footer-nav">
72
+ <li>
73
+ <a href="#">
74
+ あいうえお
75
+ </a>
76
+ </li>
77
+ <li class="accordion">
78
+ <a>かきくけこ</a>
79
+ <ul class="sub-menu">
80
+ <li>
81
+ <a href="#">
82
+ SERVICE
83
+ </a>
84
+ </li>
85
+ </ul>
86
+ </li>
87
+ </ul>
88
+
89
+ </div>
90
+ </div>
91
+ <script>
92
+
93
+ /* アコーディオン メニュー フッター メニュー*/
94
+ var $navbarLinkDropdown = Array.prototype.slice.call(document.querySelectorAll('.footer-nav > li'), 0);
95
+ // ドロップダウンアイコンが存在する場合
96
+ if ($navbarLinkDropdown.length > 0) {
97
+
98
+ // ドロップダウンアイコン要素のクリックイベント
99
+ $navbarLinkDropdown.forEach( function($el) {
100
+ // 属性初期化
101
+ let $ul = $el.querySelector('ul');
102
+ let h = 0;
103
+ let s = 0;
104
+ if($ul) {
105
+ h = $ul.querySelectorAll('li').length * 49;
106
+ // s = $ul.querySelectorAll('li').length * 0.1;
107
+ s = 0.4;
108
+
109
+ $ul.style.transition = 'all '+ s +'s ease-in';
110
+ $ul.dataset.height = h;
111
+ }
112
+ $el.addEventListener('click', function() {
113
+ let $ul = $el.querySelector('ul');
114
+ // ドロップダウンメニュー
115
+ $el.classList.toggle('is-hidden');
116
+ if($ul) {
117
+ if ($el.classList.contains('is-hidden')) {
118
+ $ul.style.height = '0px';
119
+ }else{
120
+ $ul.style.height = $ul.dataset.height + 'px';
121
+ }
122
+ }
123
+
124
+ });
125
+ // 最初は折りたたむ
126
+ $el.click();
127
+ });
128
+ }
129
+ </script>
130
+ </body>
131
+ </html>
132
+
133
+ ```
134
+
11
135
  jsに詳しくない事と、急ぎの為、
12
136
  半日以上、調べましたがjqueryが必要なものしかなく、
13
137
  アドバイスを頂けると幸いです。

1

ソースの追加

2019/05/16 10:40

投稿

Tatsurou
Tatsurou

スコア81

title CHANGED
File without changes
body CHANGED
@@ -5,6 +5,9 @@
5
5
  ### やりたいこと
6
6
  開いたサブメニューをタップしても、該当のページに遷移するだけで、閉じないようにしたい。
7
7
 
8
+ ### ソース
9
+ https://codepen.io/aratamaru/pen/WBpmyr
10
+
8
11
  jsに詳しくない事と、急ぎの為、
9
12
  半日以上、調べましたがjqueryが必要なものしかなく、
10
13
  アドバイスを頂けると幸いです。