質問編集履歴

3

文章訂正

2017/12/21 10:33

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,5 +1,7 @@
1
1
  jQueryでスティッキーのナビゲーションを作成しています。
2
2
 
3
+ スクロールして500pxくらいの位置で表示、フッター前で非表示したいです。
4
+
3
5
  スクロール途中で表示させることができましたが、フッター前で非表示にする方法がわからないです。
4
6
 
5
7
 

2

説明追記

2017/12/21 10:33

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -76,6 +76,8 @@
76
76
 
77
77
  html追記します。
78
78
 
79
+ フッター前のfadeoutというsectionに来たらnavを非表示にしたいです。
80
+
79
81
 
80
82
 
81
83
  ```html

1

html追記

2017/12/21 04:45

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
 
14
14
 
15
- ```ここに言語を入力
15
+ ```jQuery
16
16
 
17
17
  <script>
18
18
 
@@ -71,3 +71,201 @@
71
71
  </script>
72
72
 
73
73
  ```
74
+
75
+
76
+
77
+ html追記します。
78
+
79
+
80
+
81
+ ```html
82
+
83
+ <!DOCTYPE html>
84
+
85
+ <html lang="ja">
86
+
87
+ <head>
88
+
89
+ <meta charset="UTF-8">
90
+
91
+ <meta name="viewport" content="width=device-width">
92
+
93
+ <title>Stikcy or change header and navigation when scrolling using jQuery #1</title>
94
+
95
+ <style>
96
+
97
+ /* page style */
98
+
99
+ * {
100
+
101
+ margin: 0;
102
+
103
+ padding: 0;
104
+
105
+ box-sizing: border-box;
106
+
107
+ }
108
+
109
+ header {
110
+
111
+ position: relative;
112
+
113
+ height: 200px;
114
+
115
+ background: #3498db;
116
+
117
+ }
118
+
119
+ nav {
120
+
121
+ height: 100px;
122
+
123
+ background: #f1c40f;
124
+
125
+ }
126
+
127
+ main {
128
+
129
+ padding: 120px 20px;
130
+
131
+ background: #ecf0f1;
132
+
133
+ }
134
+
135
+ section {
136
+
137
+ max-width: 960px;
138
+
139
+ height: 1000px;
140
+
141
+ margin: 0 auto;
142
+
143
+ background: #fff;
144
+
145
+ box-shadow: 0 0 30px rgba(0,0,0,.1);
146
+
147
+ }
148
+
149
+ section + section {
150
+
151
+ margin-top: 120px;
152
+
153
+ }
154
+
155
+ footer {
156
+
157
+ height: 500px;
158
+
159
+ background: #2c3e50;
160
+
161
+ }
162
+
163
+ .fadeout{
164
+
165
+ background:#3498db;
166
+
167
+ }
168
+
169
+ /* demo style */
170
+
171
+ .is-fixed {
172
+
173
+ position: fixed;
174
+
175
+ top: 0;
176
+
177
+ left: 0;
178
+
179
+ z-index: 2;
180
+
181
+ width: 100%;
182
+
183
+ }
184
+
185
+ </style>
186
+
187
+ </head>
188
+
189
+ <body>
190
+
191
+ <header></header>
192
+
193
+ <nav class="nav-sticky is-fixed"></nav>
194
+
195
+ <main>
196
+
197
+ <section></section>
198
+
199
+ <section></section>
200
+
201
+ <section></section>
202
+
203
+ <section></section>
204
+
205
+ <section class="fadeout"></section>
206
+
207
+ </main>
208
+
209
+ <footer></footer>
210
+
211
+
212
+
213
+
214
+
215
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
216
+
217
+ <script>
218
+
219
+ // ページの読み込みが完了してから実行
220
+
221
+ $(function() {
222
+
223
+ // スクロール途中から表示したいメニューバーを指定
224
+
225
+ var navBox = $(".nav-sticky");
226
+
227
+ // メニューバーは初期状態では消しておく
228
+
229
+ navBox.hide();
230
+
231
+ // 表示を開始するスクロール量を設定(px)
232
+
233
+ var TargetPos = 500;
234
+
235
+ // スクロールされた際に実行
236
+
237
+ $(window).scroll( function() {
238
+
239
+ // 現在のスクロール位置を取得
240
+
241
+ var ScrollPos = $(window).scrollTop();
242
+
243
+ // 現在のスクロール位置と、目的のスクロール位置を比較
244
+
245
+ if( ScrollPos > TargetPos ) {
246
+
247
+ // 表示(フェイドイン)
248
+
249
+ navBox.fadeIn();
250
+
251
+ }
252
+
253
+ else {
254
+
255
+ // 非表示(フェイドアウト)
256
+
257
+ navBox.fadeOut();
258
+
259
+ }
260
+
261
+ });
262
+
263
+ });
264
+
265
+ </script>
266
+
267
+ </body>
268
+
269
+ </html>
270
+
271
+ ```