質問編集履歴
1
質問を適切な表現に変更
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
スクロールして要素が見えたら表示し見え
|
1
|
+
スクロールして要素が見えたら表示し、要素の最下部が見えたら非表示にする
|
test
CHANGED
@@ -10,13 +10,13 @@
|
|
10
10
|
|
11
11
|
|
12
12
|
|
13
|
-
問題内容は下記のとおりで、これを要素([data-scroll="
|
13
|
+
問題内容は下記のとおりで、これを要素([data-scroll="target"])が終わるぴったりの場所で非表示にする方法をご教示頂きたいと考えております。
|
14
14
|
|
15
15
|
|
16
16
|
|
17
17
|
### 発生している問題
|
18
18
|
|
19
|
-
ある程度意図通りの挙動になるのですが、要素([data-scroll="
|
19
|
+
ある程度意図通りの挙動になるのですが、要素([data-scroll="target"])が終わるぴったりの場所で「非表示にする動作」が動きません。
|
20
20
|
|
21
21
|
少し通りすぎたところで消える…というような動きになってしまいます。
|
22
22
|
|
@@ -32,65 +32,23 @@
|
|
32
32
|
|
33
33
|
$(window).on("scroll", function() {
|
34
34
|
|
35
|
-
var tgt = $('[data-scroll="
|
35
|
+
var tgt = $('[data-scroll="target"]').offset().top; // ターゲットの位置取得
|
36
36
|
|
37
37
|
var pos = tgt - $(window).height(); // 画面下部からのターゲットの位置
|
38
38
|
|
39
|
-
var tgtHeight = $('[data-scroll="
|
39
|
+
var tgtHeight = $('[data-scroll="target"]').height();
|
40
40
|
|
41
41
|
|
42
42
|
|
43
43
|
if ($(window).scrollTop() > pos && $(window).scrollTop() < tgtHeight) {
|
44
44
|
|
45
|
-
$('.
|
45
|
+
$('.hoge').fadeIn();
|
46
46
|
|
47
47
|
} else {
|
48
48
|
|
49
49
|
// 非表示にする動作
|
50
50
|
|
51
|
-
$('.
|
51
|
+
$('.hoge').fadeOut();
|
52
|
-
|
53
|
-
}
|
54
|
-
|
55
|
-
});
|
56
|
-
|
57
|
-
});
|
58
|
-
|
59
|
-
```
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
### 試したこと
|
64
|
-
|
65
|
-
if文内をtgtHeight - 175のようにすると、一定の画面幅ではイメージどおりの挙動になりました。(横幅375pxくらい)。
|
66
|
-
|
67
|
-
しかし、横幅760pxくらいにすると、(当然かも知れませんが)位置がズレてしまう…という動きになっています。
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
```js
|
72
|
-
|
73
|
-
$(function() {
|
74
|
-
|
75
|
-
$(window).on("scroll", function() {
|
76
|
-
|
77
|
-
var tgt = $('[data-scroll="x"]').offset().top; // ターゲットの位置取得
|
78
|
-
|
79
|
-
var pos = tgt - $(window).height(); // 画面下部からのターゲットの位置
|
80
|
-
|
81
|
-
var tgtHeight = $('[data-scroll="x"]').height();
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
if ($(window).scrollTop() > pos && $(window).scrollTop() < tgtHeight - 175) {
|
86
|
-
|
87
|
-
$('.iconScrollBox').fadeIn();
|
88
|
-
|
89
|
-
} else {
|
90
|
-
|
91
|
-
// 非表示にする動作
|
92
|
-
|
93
|
-
$('.iconScrollBox').fadeOut();
|
94
52
|
|
95
53
|
}
|
96
54
|
|