質問編集履歴

2

コードの修正

2019/07/03 03:08

投稿

goligo
goligo

スコア16

test CHANGED
File without changes
test CHANGED
@@ -186,8 +186,6 @@
186
186
 
187
187
  $(window).scrollTop($('body').offset().top);
188
188
 
189
- $('html,body').animate({ scrollTop: 0 }, 0);
190
-
191
189
 
192
190
 
193
191
  return $defer.resolve();

1

自己解決しました

2019/07/03 03:08

投稿

goligo
goligo

スコア16

test CHANGED
File without changes
test CHANGED
@@ -123,3 +123,109 @@
123
123
  jqueryのver1.11.1を読み込んで使用しています。
124
124
 
125
125
  chrome、firefoxで確認しましたが、両方とも動きませんでした。
126
+
127
+
128
+
129
+
130
+
131
+ ### 自己解決しました
132
+
133
+
134
+
135
+ .whenと.doneを使う場合、.Deferredと.resolveが必要とのことなので以下のように加えると望んだ動作をするようになりました。
136
+
137
+
138
+
139
+ ```
140
+
141
+
142
+
143
+ var $defer = new $.Deferred();
144
+
145
+
146
+
147
+ $.when(
148
+
149
+ $defer
150
+
151
+ ).done(function(){
152
+
153
+ var target = $('.top-ttl');
154
+
155
+
156
+
157
+ var top = target.offset().top, //y座標の初期値を取得
158
+
159
+ targetH = target.height(),
160
+
161
+ pos = top + targetH / 2 - 40;
162
+
163
+ target.css({top: pos + "px"});
164
+
165
+
166
+
167
+ $(window).scroll(function() {
168
+
169
+ var value = $(this).scrollTop(); //スクロール値を取得
170
+
171
+ target.css('top', pos + value / -2 ); //スクロールを遅くする
172
+
173
+ });
174
+
175
+
176
+
177
+ });
178
+
179
+
180
+
181
+
182
+
183
+ var func = function(){
184
+
185
+ $(window).on('load', function() {
186
+
187
+ $(window).scrollTop($('body').offset().top);
188
+
189
+ $('html,body').animate({ scrollTop: 0 }, 0);
190
+
191
+
192
+
193
+ return $defer.resolve();
194
+
195
+ });
196
+
197
+
198
+
199
+ return $defer.promise();
200
+
201
+ };
202
+
203
+
204
+
205
+
206
+
207
+ $(function() {
208
+
209
+ var target = $('.top-ttl'),
210
+
211
+ target02 = $('#slideMenu-box');
212
+
213
+ if ( target.length && target02.is(":hidden")) {//top-menuがあるときに処理
214
+
215
+ func();
216
+
217
+ }else if ( target.length && target02.is(":visible")) {
218
+
219
+ target.css('position', 'absolute' );
220
+
221
+ }
222
+
223
+
224
+
225
+ });
226
+
227
+
228
+
229
+
230
+
231
+ ```