質問編集履歴
2
コードの修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -92,7 +92,6 @@
|
|
92
92
|
var func = function(){
|
93
93
|
$(window).on('load', function() {
|
94
94
|
$(window).scrollTop($('body').offset().top);
|
95
|
-
$('html,body').animate({ scrollTop: 0 }, 0);
|
96
95
|
|
97
96
|
return $defer.resolve();
|
98
97
|
});
|
1
自己解決しました
title
CHANGED
File without changes
|
body
CHANGED
@@ -60,4 +60,57 @@
|
|
60
60
|
### 補足情報(FW/ツールのバージョンなど)
|
61
61
|
|
62
62
|
jqueryのver1.11.1を読み込んで使用しています。
|
63
|
-
chrome、firefoxで確認しましたが、両方とも動きませんでした。
|
63
|
+
chrome、firefoxで確認しましたが、両方とも動きませんでした。
|
64
|
+
|
65
|
+
|
66
|
+
### 自己解決しました
|
67
|
+
|
68
|
+
.whenと.doneを使う場合、.Deferredと.resolveが必要とのことなので以下のように加えると望んだ動作をするようになりました。
|
69
|
+
|
70
|
+
```
|
71
|
+
|
72
|
+
var $defer = new $.Deferred();
|
73
|
+
|
74
|
+
$.when(
|
75
|
+
$defer
|
76
|
+
).done(function(){
|
77
|
+
var target = $('.top-ttl');
|
78
|
+
|
79
|
+
var top = target.offset().top, //y座標の初期値を取得
|
80
|
+
targetH = target.height(),
|
81
|
+
pos = top + targetH / 2 - 40;
|
82
|
+
target.css({top: pos + "px"});
|
83
|
+
|
84
|
+
$(window).scroll(function() {
|
85
|
+
var value = $(this).scrollTop(); //スクロール値を取得
|
86
|
+
target.css('top', pos + value / -2 ); //スクロールを遅くする
|
87
|
+
});
|
88
|
+
|
89
|
+
});
|
90
|
+
|
91
|
+
|
92
|
+
var func = function(){
|
93
|
+
$(window).on('load', function() {
|
94
|
+
$(window).scrollTop($('body').offset().top);
|
95
|
+
$('html,body').animate({ scrollTop: 0 }, 0);
|
96
|
+
|
97
|
+
return $defer.resolve();
|
98
|
+
});
|
99
|
+
|
100
|
+
return $defer.promise();
|
101
|
+
};
|
102
|
+
|
103
|
+
|
104
|
+
$(function() {
|
105
|
+
var target = $('.top-ttl'),
|
106
|
+
target02 = $('#slideMenu-box');
|
107
|
+
if ( target.length && target02.is(":hidden")) {//top-menuがあるときに処理
|
108
|
+
func();
|
109
|
+
}else if ( target.length && target02.is(":visible")) {
|
110
|
+
target.css('position', 'absolute' );
|
111
|
+
}
|
112
|
+
|
113
|
+
});
|
114
|
+
|
115
|
+
|
116
|
+
```
|