回答編集履歴
3
コード追加
answer
CHANGED
@@ -23,6 +23,41 @@
|
|
23
23
|
|
24
24
|
サンプルを作成したのでリンク置いておきます。
|
25
25
|
---
|
26
|
+
> カレント開閉の処理で、カレントの時の処理で、親メニュー要素に is-toggle-accNav--openクラスを付与するコードが必要に思います。
|
26
27
|
|
28
|
+
> DOMツリー構造をみて、辿っていけばいいでしょう。
|
27
29
|
|
30
|
+
> 子メニューがカレントの場合は、祖先の.mainNavKids の一つ前の要素にis-toggle-accNav--openクラスを付与すればいいので、下記のような感じで。
|
31
|
+
`$(this).parents('.mainNavKids').prev().addClass('is-toggle-accNav--open');`
|
32
|
+
|
33
|
+
親メニューがカレントの場合は、別途コードが必要になりますが、それはご自分で考えてみてください。
|
34
|
+
|
35
|
+
```js
|
36
|
+
//Nav
|
37
|
+
$(function(){
|
38
|
+
$('.is-toggle-accNav').each(function(){
|
39
|
+
$(this).on('click',function(){
|
40
|
+
$(this).toggleClass('is-toggle-accNav--open');
|
41
|
+
$("+.mainNavKids",this).slideToggle()
|
42
|
+
return false;
|
43
|
+
});
|
44
|
+
});
|
45
|
+
});
|
46
|
+
|
47
|
+
//current
|
48
|
+
$(function(){
|
49
|
+
$('.mainNav__item__link').each(function(){
|
50
|
+
var $href = $(this).attr('href');
|
51
|
+
if($href === 'https://teratail.com') {
|
52
|
+
$(this).parent('.mainNavKids__item').addClass('current');
|
53
|
+
$(this).parents('.mainNav__item').addClass('current');
|
54
|
+
$(this).parents('.mainNavKids').addClass('is-mainNavKids--current');
|
55
|
+
$(this).parents('.mainNavKids').prev().addClass('is-toggle-accNav--open');
|
56
|
+
} else {
|
57
|
+
$(this).parent().removeClass('current');
|
58
|
+
}
|
59
|
+
});
|
60
|
+
});
|
61
|
+
```
|
62
|
+
|
28
63
|
[動作確認用サンプル](https://codepen.io/hatena19/pen/povBzKm)
|
2
サンプルリンクの追加
answer
CHANGED
@@ -19,4 +19,10 @@
|
|
19
19
|
.is-mainNavKids--current {
|
20
20
|
display: block;
|
21
21
|
}
|
22
|
-
```
|
22
|
+
```
|
23
|
+
|
24
|
+
サンプルを作成したのでリンク置いておきます。
|
25
|
+
---
|
26
|
+
|
27
|
+
|
28
|
+
[動作確認用サンプル](https://codepen.io/hatena19/pen/povBzKm)
|
1
追記
answer
CHANGED
@@ -6,4 +6,17 @@
|
|
6
6
|
|
7
7
|
`(this).toggleClass('is-toggle-accNav--open');`
|
8
8
|
|
9
|
-
とりあえず上記を修正して希望の動作になるか確認してみてください。
|
9
|
+
とりあえず上記を修正して希望の動作になるか確認してみてください。
|
10
|
+
|
11
|
+
追記
|
12
|
+
---
|
13
|
+
あと、初期状態で、カレントなら開いた状態、それ以外は閉じた状態にしておきたいのなら、CSSで設定しておきましょう。
|
14
|
+
|
15
|
+
```css
|
16
|
+
.mainNavKids {
|
17
|
+
display: none;
|
18
|
+
}
|
19
|
+
.is-mainNavKids--current {
|
20
|
+
display: block;
|
21
|
+
}
|
22
|
+
```
|