質問編集履歴
2
jQueryを追加
title
CHANGED
|
File without changes
|
body
CHANGED
|
@@ -180,6 +180,22 @@
|
|
|
180
180
|
return false;
|
|
181
181
|
}
|
|
182
182
|
```
|
|
183
|
+
※上記のjQueryは本番で使用しているものです。
|
|
184
|
+
サンプルコードでは、下記のjQueryを使用しています。
|
|
185
|
+
```
|
|
186
|
+
<script>$(function() {
|
|
187
|
+
var dist = 50;
|
|
188
|
+
$(window).scroll(function() {
|
|
189
|
+
if ($(window).scrollTop() > dist) {
|
|
190
|
+
$('#header').addClass('thin');
|
|
191
|
+
} else {
|
|
192
|
+
$('#header').removeClass('thin');
|
|
193
|
+
}
|
|
194
|
+
});
|
|
195
|
+
});</script>
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
|
|
183
199
|
しかし、一番上の目次自動生成JavaScriptを導入すると、jQueryでの高さのずれ調整が聞かなくなってしまいます。そのため、目次自動生成JavaScriptのコードに、ずれ調整コードを入れ込みたいと思っています。
|
|
184
200
|
|
|
185
201
|
.scrollTo()を使用すれば、jQueryでいうところのanimate(scrollTop) の部分のような動作が実装できそうなのですが、その先の書き方が分かりません。
|
1
不要な文字を削除、htmlを編集
title
CHANGED
|
File without changes
|
body
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
[].forEach.call(document.querySelectorAll('h2, h3'),(x,y)=>{
|
|
12
12
|
var url = 'example.html';
|
|
13
13
|
var target = url.slice(0, -5);
|
|
14
|
-
var id= target
|
|
14
|
+
var id= target +(y+1).toString();
|
|
15
15
|
x.setAttribute('id',id);
|
|
16
16
|
var li=document.createElement('li');
|
|
17
17
|
ul.appendChild(li);
|
|
@@ -31,58 +31,141 @@
|
|
|
31
31
|
});
|
|
32
32
|
```
|
|
33
33
|
```
|
|
34
|
+
<div id="header">
|
|
35
|
+
<ul>
|
|
36
|
+
<li>menu1</li>
|
|
37
|
+
<li>menu2</li>
|
|
38
|
+
<li>menu3</li>
|
|
39
|
+
</ul>
|
|
40
|
+
</div>
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
<div id="contents">contents
|
|
34
44
|
<div id="index">
|
|
35
45
|
<p class="toc-title">目次</p>
|
|
36
46
|
<!-- ここに目次が<ul><li></li></ul>の形で表示される -->
|
|
37
47
|
</div>
|
|
38
48
|
|
|
39
49
|
<div class="articleComponent">
|
|
40
|
-
<h2>H2の
|
|
50
|
+
<h2>H2の1個目</h2>
|
|
41
51
|
</div>
|
|
42
52
|
<div class="articleComponent">
|
|
43
53
|
<p class="articleText">テキスト</p>
|
|
44
54
|
</div>
|
|
45
55
|
|
|
46
56
|
<div class="articleComponent">
|
|
47
|
-
<h2>H2の
|
|
57
|
+
<h2>H2の2個目</h2>
|
|
48
58
|
</div>
|
|
49
59
|
<div class="articleComponent">
|
|
50
60
|
<p class="articleText">テキスト</p>
|
|
51
61
|
</div>
|
|
52
62
|
|
|
53
63
|
<div class="articleComponent">
|
|
54
|
-
<h2>H2の
|
|
64
|
+
<h2>H2の3個目</h2>
|
|
55
65
|
</div>
|
|
56
66
|
<div class="articleComponent">
|
|
57
67
|
<p class="articleText">テキスト</p>
|
|
58
68
|
</div>
|
|
59
69
|
<div class="articleComponent">
|
|
60
|
-
<
|
|
70
|
+
<h2>H2の4個目</h2>
|
|
61
71
|
</div>
|
|
62
72
|
<div class="articleComponent">
|
|
63
73
|
<p class="articleText">テキスト</p>
|
|
64
74
|
</div>
|
|
65
|
-
<div class="articleComponent">
|
|
66
|
-
<h3>H3の内容</h3>
|
|
67
|
-
</div>
|
|
68
|
-
<div class="articleComponent">
|
|
69
|
-
<p class="articleText">テキスト</p>
|
|
70
|
-
</div>
|
|
71
75
|
|
|
72
76
|
<div class="articleComponent">
|
|
73
|
-
<h2>H2の
|
|
77
|
+
<h2>H2の5個目</h2>
|
|
74
78
|
</div>
|
|
75
79
|
<div class="articleComponent">
|
|
76
80
|
<p class="articleText">テキスト</p>
|
|
77
81
|
</div>
|
|
78
|
-
|
|
79
82
|
<div class="articleComponent">
|
|
80
|
-
|
|
83
|
+
<h2>H2の6個目</h2>
|
|
81
|
-
</div>
|
|
84
|
+
</div>
|
|
82
|
-
<div class="articleComponent">
|
|
85
|
+
<div class="articleComponent">
|
|
83
|
-
|
|
86
|
+
<p class="articleText">テキスト</p>
|
|
84
|
-
</div>
|
|
87
|
+
</div>
|
|
88
|
+
|
|
89
|
+
<div class="articleComponent">
|
|
90
|
+
<h2>H2の7個目</h2>
|
|
91
|
+
</div>
|
|
92
|
+
<div class="articleComponent">
|
|
93
|
+
<p class="articleText">テキスト</p>
|
|
94
|
+
</div>
|
|
95
|
+
|
|
96
|
+
<div class="articleComponent">
|
|
97
|
+
<h2>H2の8個目</h2>
|
|
98
|
+
</div>
|
|
99
|
+
<div class="articleComponent">
|
|
100
|
+
<p class="articleText">テキスト</p>
|
|
101
|
+
</div>
|
|
102
|
+
<div class="articleComponent">
|
|
103
|
+
<h3>H3の内容</h3>
|
|
104
|
+
</div>
|
|
105
|
+
<div class="articleComponent">
|
|
106
|
+
<p class="articleText">テキスト</p>
|
|
107
|
+
</div>
|
|
108
|
+
<div class="articleComponent">
|
|
109
|
+
<h3>H3の内容</h3>
|
|
110
|
+
</div>
|
|
111
|
+
<div class="articleComponent">
|
|
112
|
+
<p class="articleText">テキスト</p>
|
|
113
|
+
</div>
|
|
114
|
+
|
|
115
|
+
<div class="articleComponent">
|
|
116
|
+
<h2>H2の9個目</h2>
|
|
117
|
+
</div>
|
|
118
|
+
<div class="articleComponent">
|
|
119
|
+
<p class="articleText">テキスト</p>
|
|
120
|
+
</div>
|
|
121
|
+
</div>
|
|
85
122
|
```
|
|
123
|
+
```
|
|
124
|
+
#header {
|
|
125
|
+
position: fixed;
|
|
126
|
+
top: 0;
|
|
127
|
+
left: 0;
|
|
128
|
+
width: 100%;
|
|
129
|
+
height: 100px;
|
|
130
|
+
background: #333;
|
|
131
|
+
color: #fff;
|
|
132
|
+
z-index: 1;
|
|
133
|
+
transition: all 0.3s ease;
|
|
134
|
+
-webkit-transition: all 0.3s ease;
|
|
135
|
+
-moz-transition: all 0.3s ease;
|
|
136
|
+
-o-transition: all 0.3s ease;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
#header.thin {
|
|
140
|
+
width: 100%;
|
|
141
|
+
height: 60px;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
#header li {
|
|
145
|
+
float: left;
|
|
146
|
+
display: block;
|
|
147
|
+
padding: 5px 20px;
|
|
148
|
+
margin-top: 15px;
|
|
149
|
+
-webkit-transition: all 0.3s ease;
|
|
150
|
+
-moz-transition: all 0.3s ease;
|
|
151
|
+
-o-transition: all 0.3s ease;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
#header.thin li {
|
|
155
|
+
margin-top: 0;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
#contents {
|
|
159
|
+
height: 800px;
|
|
160
|
+
margin-top: 100px;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
#footer {
|
|
164
|
+
height: 80px;
|
|
165
|
+
background: #666;
|
|
166
|
+
color: #fff;
|
|
167
|
+
}
|
|
168
|
+
```
|
|
86
169
|
現在(目次自動生成JavaScript導入前)は、jQueryで下記のように制御しています。
|
|
87
170
|
```
|
|
88
171
|
function() {
|