回答編集履歴
3
質問2つ目に対する回答
test
CHANGED
@@ -66,4 +66,60 @@
|
|
66
66
|
|
67
67
|
|
68
68
|
|
69
|
+
イメージは例えば[CSSフレームワークのPushpin](http://materializecss.com/pushpin.html)のようなものと推察されます。
|
70
|
+
|
71
|
+
Qiitaの記事とサブタイトルを連動してるやつも同じですね。
|
72
|
+
|
73
|
+
現在のスクロール位置と対象の記事のトップ位置をスクロール毎のイベントで取得し、比較してた上で
|
74
|
+
|
75
|
+
アンダーバーを移動させることで可能となると思います。
|
76
|
+
|
77
|
+
|
78
|
+
|
69
|
-
|
79
|
+
```javascript
|
80
|
+
|
81
|
+
|
82
|
+
|
83
|
+
$(window).scroll(function(){ //スクロール時のイベント
|
84
|
+
|
85
|
+
var doc_pos = $(document).scrollTop(); //現在のスクロール位置を取得
|
86
|
+
|
87
|
+
var left_position = 0;
|
88
|
+
|
89
|
+
if(doc_pos == 0){ //0の場合はTOPとする
|
90
|
+
|
91
|
+
$(".global-nav--bar").css("left",left_position+"%");
|
92
|
+
|
93
|
+
}else{
|
94
|
+
|
95
|
+
for(i=1;i<5;i++){
|
96
|
+
|
97
|
+
c_pos = $('#content_'+i).offset().top; //各コンテンツの位置を取得
|
98
|
+
|
99
|
+
if(c_pos <= doc_pos){ //各コンテンツの位置を越えていたらアンダーバーを移動
|
100
|
+
|
101
|
+
left_position = i * 20;
|
102
|
+
|
103
|
+
$(".global-nav--bar").css("left",left_position+"%");
|
104
|
+
|
105
|
+
}
|
106
|
+
|
107
|
+
}
|
108
|
+
|
109
|
+
}
|
110
|
+
|
111
|
+
})
|
112
|
+
|
113
|
+
|
114
|
+
|
115
|
+
```
|
116
|
+
|
117
|
+
|
118
|
+
|
119
|
+
※ただし上記ソースは、グロナビメニュークリックでちょっとアンダーバーが横に動いて正位置に戻るような動作をします。
|
120
|
+
|
121
|
+
また「コンテンツは4つ(+トップ)」と決め打ちなので増減した場合に対応させる必要があります。
|
122
|
+
|
123
|
+
その部分を含めてご自身のサイトに合うように調整してみてください。
|
124
|
+
|
125
|
+
|
2
修正
test
CHANGED
@@ -1,10 +1,10 @@
|
|
1
|
-
|
1
|
+
# 注記:
|
2
2
|
|
3
|
-
動作検証はある程度してはいるものの、あくまでサンプルであり最適解とは限りません。
|
3
|
+
**動作検証はある程度してはいるものの、あくまでサンプルであり最適解とは限りません。**
|
4
4
|
|
5
|
-
自身の環境に導入するための参考程度にとどめておいてください。
|
5
|
+
**自身の環境に導入するための参考程度にとどめておいてください。**
|
6
6
|
|
7
|
-
|
7
|
+
|
8
8
|
|
9
9
|
|
10
10
|
|
1
注記
test
CHANGED
@@ -1,10 +1,20 @@
|
|
1
|
+
**注記:
|
2
|
+
|
3
|
+
動作検証はある程度してはいるものの、あくまでサンプルであり最適解とは限りません。
|
4
|
+
|
5
|
+
自身の環境に導入するための参考程度にとどめておいてください。
|
6
|
+
|
7
|
+
**
|
8
|
+
|
9
|
+
|
10
|
+
|
1
11
|
質問1:
|
2
12
|
|
3
13
|
> 最後にマウスオーバーしたところにアンダーバーをとどめておくような設定は可能でしょうか?
|
4
14
|
|
5
15
|
|
6
16
|
|
7
|
-
戻ってしまうのはcssのhoverの特性だと思います。
|
17
|
+
hoverからoutしたときに戻ってしまうのはcssのhoverの特性だと思います。
|
8
18
|
|
9
19
|
hoverしたときのみに反映されるので、hoverしてない場合は初期値となります。
|
10
20
|
|
@@ -20,6 +30,8 @@
|
|
20
30
|
|
21
31
|
```javascript
|
22
32
|
|
33
|
+
//グロナビhover時のイベントをキャッチ
|
34
|
+
|
23
35
|
$('.global-nav p').on({
|
24
36
|
|
25
37
|
'mouseenter' : function(){
|
@@ -28,11 +40,9 @@
|
|
28
40
|
|
29
41
|
var left_position = index * 20; //アンダーバーの位置を決定
|
30
42
|
|
31
|
-
|
32
|
-
|
33
43
|
$(".global-nav--bar").css("left",left_position+"%"); //アンダーバー移動
|
34
44
|
|
35
|
-
|
45
|
+
},
|
36
46
|
|
37
47
|
});
|
38
48
|
|