質問編集履歴
2
コードや質問文の抜けを修正しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -54,7 +54,7 @@
|
|
54
54
|
### 起きている問題
|
55
55
|
|
56
56
|
別ページに飛んだときは正しく動作し、ヘッダー分の高さだけ位置をずらして飛ぶことができています。レスポンシブにも対応できました。
|
57
|
-
しかし、同ページ内で遷移したときに高さの調節が効いていないようで、idを指定しているh2見出しがheaderに隠れてしまいます。
|
57
|
+
しかし、同ページ内で遷移したときに高さの調節が効いていないようで、idを指定しているdivセクションのh2見出しがheaderに隠れてしまいます。
|
58
58
|
|
59
59
|
### 補足情報
|
60
60
|
jQueryバージョンは3.4.1です。
|
@@ -72,14 +72,16 @@
|
|
72
72
|
<!--#include virtual="./header.html" -->
|
73
73
|
|
74
74
|
<div class="container" id="1">
|
75
|
-
<div class="row
|
75
|
+
<div class="row">
|
76
|
+
<h2>見出し1</h2>
|
76
|
-
ここにコンテンツ
|
77
|
+
ここにコンテンツ1
|
77
78
|
</div>
|
78
79
|
</div>
|
79
80
|
|
80
81
|
<div class="wrapper" id="2">
|
81
82
|
<div class="container">
|
82
83
|
<div class="row">
|
84
|
+
<h2>見出し2</h2>
|
83
85
|
ここにコンテンツ
|
84
86
|
</div>
|
85
87
|
</div>
|
1
html/css/jsコードの追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -59,4 +59,97 @@
|
|
59
59
|
### 補足情報
|
60
60
|
jQueryバージョンは3.4.1です。
|
61
61
|
|
62
|
-
お力を貸していただけたら幸いです。よろしくお願いします。
|
62
|
+
お力を貸していただけたら幸いです。よろしくお願いします。
|
63
|
+
|
64
|
+
### 2019.10.15追記
|
65
|
+
|
66
|
+
ご指摘がありましたので、当該html/cssも載せます。
|
67
|
+
SSIによってメニューバーを含むヘッダーを共通化しています。サーバーはロリポップ!です。
|
68
|
+
|
69
|
+
index.htmlが以下。
|
70
|
+
```html
|
71
|
+
|
72
|
+
<!--#include virtual="./header.html" -->
|
73
|
+
|
74
|
+
<div class="container" id="1">
|
75
|
+
<div class="row center">
|
76
|
+
ここにコンテンツ
|
77
|
+
</div>
|
78
|
+
</div>
|
79
|
+
|
80
|
+
<div class="wrapper" id="2">
|
81
|
+
<div class="container">
|
82
|
+
<div class="row">
|
83
|
+
ここにコンテンツ
|
84
|
+
</div>
|
85
|
+
</div>
|
86
|
+
</div>
|
87
|
+
|
88
|
+
```
|
89
|
+
|
90
|
+
SSIで呼び出しているheader.htmlが以下。
|
91
|
+
|
92
|
+
```html
|
93
|
+
|
94
|
+
<header>
|
95
|
+
<nav>
|
96
|
+
<div class="container">
|
97
|
+
<div class="row">
|
98
|
+
<div class="col-md-4">
|
99
|
+
<h1><a href="index.html">サイトタイトル</a></h1>
|
100
|
+
</div>
|
101
|
+
<div class="col-md-8">
|
102
|
+
<ul class="d-none d-md-flex">
|
103
|
+
<li><a href="works.html">リスト1</a></li>
|
104
|
+
<li><a href="index.html#1">リスト2</a></li>
|
105
|
+
<li><a href="index.html#2">リスト3</a></li>
|
106
|
+
<li><a href="mailform.html">メールフォーム</a></li>
|
107
|
+
</ul>
|
108
|
+
</div>
|
109
|
+
</div>
|
110
|
+
</nav>
|
111
|
+
</header>
|
112
|
+
```
|
113
|
+
header.htmlは、index.html以外のページにおいても、SSIを用いて共通パーツとして呼び出しています。
|
114
|
+
|
115
|
+
ヘッダーを固定するのは、ある程度スクロールしたらnavに.is-fixedクラスを付与する形で行っています。jsおよびCSSは以下。
|
116
|
+
|
117
|
+
```js
|
118
|
+
$(function() {
|
119
|
+
var $win = $(window),
|
120
|
+
$main = $('main'),
|
121
|
+
$nav = $('nav'),
|
122
|
+
navHeight = $nav.outerHeight(),
|
123
|
+
navPos = $nav.offset().top,
|
124
|
+
fixedClass = 'is-fixed';
|
125
|
+
|
126
|
+
$win.on('load scroll', function() {
|
127
|
+
var value = $(this).scrollTop();
|
128
|
+
if ( value > navPos ) {
|
129
|
+
$nav.addClass(fixedClass);
|
130
|
+
$main.css('margin-top', navHeight);
|
131
|
+
} else {
|
132
|
+
$nav.removeClass(fixedClass);
|
133
|
+
$main.css('margin-top', '0');
|
134
|
+
}
|
135
|
+
});
|
136
|
+
});
|
137
|
+
```
|
138
|
+
```css
|
139
|
+
|
140
|
+
.is-fixed {
|
141
|
+
position: fixed;
|
142
|
+
top: 0;
|
143
|
+
left: 0;
|
144
|
+
z-index: 1000;
|
145
|
+
box-shadow: 0px 0px 6px 3px rgba(79, 79, 79, 0.26);
|
146
|
+
}
|
147
|
+
```
|
148
|
+
|
149
|
+
なお、CSSでのheader・navのheight値の指定はしていません。
|
150
|
+
|
151
|
+
高さ合わせが上手くいく例
|
152
|
+
◯works.htmlにいる状態で、index.html#2へのリンクをクリックする(別ページ遷移)
|
153
|
+
|
154
|
+
高さ合わせが上手くいかない例
|
155
|
+
×index.htmlにいる状態で、index.html#2へのリンクをクリックする(同ページ内遷移)
|