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

質問編集履歴

2

jQueryを追加

2019/10/17 05:43

投稿

vankick
vankick

スコア22

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を編集

2019/10/17 05:43

投稿

vankick
vankick

スコア22

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- +(y+1).toString();
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の内容</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の内容</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の内容</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
- <h3>H3内容</h3>
70
+ <h2>H24個目</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の内容</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
- <h2>H2の内容</h2>
83
+ <h2>H2の6個目</h2>
81
- </div>
84
+ </div>
82
- <div class="articleComponent">
85
+ <div class="articleComponent">
83
- <p class="articleText">テキスト</p>
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() {