質問編集履歴

1

質問を適切な表現に変更

2020/08/31 12:14

投稿

MgKm
MgKm

スコア0

test CHANGED
@@ -1 +1 @@
1
- スクロールして要素が見えたら表示し見えなくなったら非表示にする
1
+ スクロールして要素が見えたら表示し、要素の最下部が見えたら非表示にする
test CHANGED
@@ -10,13 +10,13 @@
10
10
 
11
11
 
12
12
 
13
- 問題内容は下記のとおりで、これを要素([data-scroll="x"])が終わるぴったりの場所で非表示にする方法をご教示頂きたいと考えております。
13
+ 問題内容は下記のとおりで、これを要素([data-scroll="target"])が終わるぴったりの場所で非表示にする方法をご教示頂きたいと考えております。
14
14
 
15
15
 
16
16
 
17
17
  ### 発生している問題
18
18
 
19
- ある程度意図通りの挙動になるのですが、要素([data-scroll="x"])が終わるぴったりの場所で「非表示にする動作」が動きません。
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="x"]').offset().top; // ターゲットの位置取得
35
+ var tgt = $('[data-scroll="target"]').offset().top; // ターゲットの位置取得
36
36
 
37
37
  var pos = tgt - $(window).height(); // 画面下部からのターゲットの位置
38
38
 
39
- var tgtHeight = $('[data-scroll="x"]').height();
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
- $('.iconScrollBox').fadeIn();
45
+ $('.hoge').fadeIn();
46
46
 
47
47
  } else {
48
48
 
49
49
  // 非表示にする動作
50
50
 
51
- $('.iconScrollBox').fadeOut();
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