質問編集履歴

2

コードや質問文の抜けを修正しました。

2019/10/15 05:00

投稿

gtgt
gtgt

スコア5

test CHANGED
File without changes
test CHANGED
@@ -110,7 +110,7 @@
110
110
 
111
111
  別ページに飛んだときは正しく動作し、ヘッダー分の高さだけ位置をずらして飛ぶことができています。レスポンシブにも対応できました。
112
112
 
113
- しかし、同ページ内で遷移したときに高さの調節が効いていないようで、idを指定しているh2見出しがheaderに隠れてしまいます。
113
+ しかし、同ページ内で遷移したときに高さの調節が効いていないようで、idを指定しているdivセクションのh2見出しがheaderに隠れてしまいます。
114
114
 
115
115
 
116
116
 
@@ -146,9 +146,11 @@
146
146
 
147
147
  <div class="container" id="1">
148
148
 
149
- <div class="row center">
149
+ <div class="row">
150
+
150
-
151
+ <h2>見出し1</h2>
152
+
151
- ここにコンテンツ
153
+ ここにコンテンツ1
152
154
 
153
155
  </div>
154
156
 
@@ -162,6 +164,8 @@
162
164
 
163
165
  <div class="row">
164
166
 
167
+ <h2>見出し2</h2>
168
+
165
169
  ここにコンテンツ
166
170
 
167
171
  </div>

1

html/css/jsコードの追記

2019/10/15 05:00

投稿

gtgt
gtgt

スコア5

test CHANGED
File without changes
test CHANGED
@@ -121,3 +121,189 @@
121
121
 
122
122
 
123
123
  お力を貸していただけたら幸いです。よろしくお願いします。
124
+
125
+
126
+
127
+ ### 2019.10.15追記
128
+
129
+
130
+
131
+ ご指摘がありましたので、当該html/cssも載せます。
132
+
133
+ SSIによってメニューバーを含むヘッダーを共通化しています。サーバーはロリポップ!です。
134
+
135
+
136
+
137
+ index.htmlが以下。
138
+
139
+ ```html
140
+
141
+
142
+
143
+ <!--#include virtual="./header.html" -->
144
+
145
+
146
+
147
+ <div class="container" id="1">
148
+
149
+ <div class="row center">
150
+
151
+ ここにコンテンツ
152
+
153
+ </div>
154
+
155
+ </div>
156
+
157
+
158
+
159
+ <div class="wrapper" id="2">
160
+
161
+ <div class="container">
162
+
163
+ <div class="row">
164
+
165
+ ここにコンテンツ
166
+
167
+ </div>
168
+
169
+ </div>
170
+
171
+ </div>
172
+
173
+
174
+
175
+ ```
176
+
177
+
178
+
179
+ SSIで呼び出しているheader.htmlが以下。
180
+
181
+
182
+
183
+ ```html
184
+
185
+
186
+
187
+ <header>
188
+
189
+ <nav>
190
+
191
+ <div class="container">
192
+
193
+ <div class="row">
194
+
195
+ <div class="col-md-4">
196
+
197
+ <h1><a href="index.html">サイトタイトル</a></h1>
198
+
199
+ </div>
200
+
201
+ <div class="col-md-8">
202
+
203
+ <ul class="d-none d-md-flex">
204
+
205
+ <li><a href="works.html">リスト1</a></li>
206
+
207
+ <li><a href="index.html#1">リスト2</a></li>
208
+
209
+ <li><a href="index.html#2">リスト3</a></li>
210
+
211
+ <li><a href="mailform.html">メールフォーム</a></li>
212
+
213
+ </ul>
214
+
215
+ </div>
216
+
217
+ </div>
218
+
219
+ </nav>
220
+
221
+ </header>
222
+
223
+ ```
224
+
225
+ header.htmlは、index.html以外のページにおいても、SSIを用いて共通パーツとして呼び出しています。
226
+
227
+
228
+
229
+ ヘッダーを固定するのは、ある程度スクロールしたらnavに.is-fixedクラスを付与する形で行っています。jsおよびCSSは以下。
230
+
231
+
232
+
233
+ ```js
234
+
235
+ $(function() {
236
+
237
+ var $win = $(window),
238
+
239
+ $main = $('main'),
240
+
241
+ $nav = $('nav'),
242
+
243
+ navHeight = $nav.outerHeight(),
244
+
245
+ navPos = $nav.offset().top,
246
+
247
+ fixedClass = 'is-fixed';
248
+
249
+
250
+
251
+ $win.on('load scroll', function() {
252
+
253
+ var value = $(this).scrollTop();
254
+
255
+ if ( value > navPos ) {
256
+
257
+ $nav.addClass(fixedClass);
258
+
259
+ $main.css('margin-top', navHeight);
260
+
261
+ } else {
262
+
263
+ $nav.removeClass(fixedClass);
264
+
265
+ $main.css('margin-top', '0');
266
+
267
+ }
268
+
269
+ });
270
+
271
+ });
272
+
273
+ ```
274
+
275
+ ```css
276
+
277
+
278
+
279
+ .is-fixed {
280
+
281
+ position: fixed;
282
+
283
+ top: 0;
284
+
285
+ left: 0;
286
+
287
+ z-index: 1000;
288
+
289
+ box-shadow: 0px 0px 6px 3px rgba(79, 79, 79, 0.26);
290
+
291
+ }
292
+
293
+ ```
294
+
295
+
296
+
297
+ なお、CSSでのheader・navのheight値の指定はしていません。
298
+
299
+
300
+
301
+ 高さ合わせが上手くいく例
302
+
303
+ ◯works.htmlにいる状態で、index.html#2へのリンクをクリックする(別ページ遷移)
304
+
305
+
306
+
307
+ 高さ合わせが上手くいかない例
308
+
309
+ ×index.htmlにいる状態で、index.html#2へのリンクをクリックする(同ページ内遷移)