teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

5

追記

2019/11/02 01:42

投稿

kyoya0819
kyoya0819

スコア10434

answer CHANGED
@@ -169,4 +169,58 @@
169
169
 
170
170
  > footerのページ上からの座標 - ウィンドウサイズ
171
171
 
172
- の部分ですがウィンドウサイズを引かないとウインドウの上まで要素が行かないとフェードインしなくなってしまいます。
172
+ の部分ですがウィンドウサイズを引かないとウインドウの上まで要素が行かないとフェードインしなくなってしまいます。
173
+
174
+
175
+ ---
176
+
177
+ 暇な時間があったので作ってみました。
178
+ ```HTML
179
+ <div id=box1>
180
+ hogehoge~
181
+ </div>
182
+ <div id=box2>
183
+ hogehoge~
184
+ </div>
185
+ <div id=box3>
186
+ hohohoho~
187
+ </div>
188
+ <div id=box4>
189
+ hogehoge
190
+ </div>
191
+ ```
192
+ ```CSS
193
+ * {
194
+ margin: 0;
195
+ padding: 0
196
+ }
197
+ div {
198
+ height: 400px;
199
+ opacity: 0
200
+ }
201
+ #box1{
202
+ background: blue
203
+ }
204
+ #box2{
205
+ background: yellow
206
+ }
207
+ #box3{
208
+ background: green
209
+ }
210
+ #box4{
211
+ background: brown
212
+ }
213
+ ```
214
+ ```jQuery
215
+ $(window).on('load scroll',function(){
216
+ var height = $(window).height();
217
+ var now = $(document).scrollTop();
218
+ for(i=1;i<=4;i++){
219
+ var element = $('#box'+i);
220
+ var footer = element.offset().top - height;
221
+ if(now>footer){
222
+ element.animate({opacity:1.0},{duration:500,easing:'swing'});
223
+ }
224
+ }
225
+ });
226
+ ```

4

追記

2019/11/02 01:41

投稿

kyoya0819
kyoya0819

スコア10434

answer CHANGED
@@ -9,6 +9,150 @@
9
9
  表示領域外になったらフェードアウトすることができます。
10
10
  (#topBtnはあらかじめ`display:none`してあるとする)
11
11
 
12
+ ```HTMl
13
+
14
+ <header>
15
+ </header>
16
+
17
+ <div class="contents">
18
+
19
+ <p>ダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキスト
20
+ ダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキスト
21
+ ダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキスト
22
+ ダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキスト
23
+ ダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキスト
24
+ ダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキスト
25
+ ダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキスト
26
+ ダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキスト
27
+ ダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキスト
28
+ ダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキスト
29
+ ダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキスト
30
+ ダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキスト
31
+ ダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキスト
32
+ ダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキスト
33
+ ダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキスト
34
+ ダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキスト
35
+ ダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキスト
36
+ ダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキスト
37
+ ダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキスト
38
+ ダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキスト
39
+ ダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキスト
40
+ ダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキスト
41
+ ダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキスト
42
+ ダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキストダミーテキスト</p>
43
+
44
+ <a href="#" class="topBtn" id="topBtn"><img src="img/pagetop.png" alt="ページトップ"></a>
45
+
46
+ <footer>
47
+ <div class="footer">
48
+ <ul class="clearfix">
49
+ <li>
50
+ <a href="#">sample</a>
51
+ </li>
52
+ <li>
53
+ <a href="#">sample</a>
54
+ </li>
55
+ <li>
56
+ <a href="#">sample</a>
57
+ </li>
58
+ <li>
59
+ <a href="#">sample</a>
60
+ </li>
61
+ <li>
62
+ <a href="#">sample</a>
63
+ </li>
64
+ <li>
65
+ <a href="#">sample</a>
66
+ </li>
67
+ <li>
68
+ <a href="#">sample</a>
69
+ </li>
70
+ <li>
71
+ <a href="#">sample</a>
72
+ </li>
73
+ <li>
74
+ <a href="#">sample</a>
75
+ </li>
76
+ <li>
77
+ <a href="#">sample</a>
78
+ </li>
79
+ <li>
80
+ <a href="#">sample</a>
81
+ </li>
82
+
83
+ </ul>
84
+ </div>
85
+ <!-- footer -->
86
+ </footer>
87
+
88
+ </div>
89
+
90
+ ```
91
+ ```CSs
92
+
93
+ body {
94
+ font-family: "Verdana", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", "Meiryo"," sans-serif";
95
+ color: #000;
96
+ background:#fff;
97
+ font-size:0.9em;
98
+ }
99
+
100
+ .contents{
101
+ max-width:950px;
102
+ background:#fff;
103
+ margin:0 auto;
104
+ line-height:140%;
105
+ position:relative;
106
+ }
107
+
108
+ /*フッター*/
109
+
110
+ .footer{
111
+ position: relative;
112
+ background:#960;
113
+ padding: 10px 0 20px 0;
114
+ overflow: hidden;
115
+ border-radius:10px;
116
+ -webkit-border-radius:10px;
117
+ -moz-border-radius:10px;
118
+ margin-top:25px;
119
+ height:30px;
120
+ }
121
+
122
+ .footer ul{
123
+ width: 90%;
124
+ margin:0 auto;
125
+ }
126
+
127
+ .footer li {
128
+ float: left;
129
+ width: 140px;
130
+ font-size: 11px;
131
+ text-align: left;
132
+ }
133
+
134
+ .footer li a{
135
+ color:#fff;
136
+ text-decoration:none;
137
+ }
138
+
139
+ .footer li a:before{
140
+ content:"□ ";
141
+ }
142
+
143
+
144
+ .topBtn {
145
+ position:fixed;
146
+ right:0px;
147
+ display:block;
148
+ }
149
+
150
+ #topBtn {
151
+ position: fixed;
152
+ bottom: 0;
153
+ display: none
154
+ }
155
+ ```
12
156
  ```jQuery
13
157
  $(window).scroll(function(){ //スクロールされたら関数実行
14
158
  var footer = $('footer').offset().top - $(window).height(); //footerのページ上からの座標 - ウィンドウサイズ

3

tuiik

2019/11/02 00:59

投稿

kyoya0819
kyoya0819

スコア10434

answer CHANGED
@@ -20,7 +20,7 @@
20
20
  }
21
21
  });
22
22
  ```
23
- [サンプル](https://cdpn.io/asuchi0819/debug/bGGabBL/WPALYZNENdok)
23
+ [サンプル](https://cdpn.io/asuchi0819/debug/bGGabBL/wQMPozNqJBqk)
24
24
  簡単に解説入れときました。
25
25
 
26
26
  > footerのページ上からの座標 - ウィンドウサイズ

2

追記

2019/11/02 00:56

投稿

kyoya0819
kyoya0819

スコア10434

answer CHANGED
@@ -7,16 +7,22 @@
7
7
  別の質問の使い回しですが以下のようなjQueryを書くことで
8
8
  footerが表示領域に入ったら#topBtnをフェードイン
9
9
  表示領域外になったらフェードアウトすることができます。
10
+ (#topBtnはあらかじめ`display:none`してあるとする)
10
11
 
11
12
  ```jQuery
12
- $(window).scroll(function(){
13
+ $(window).scroll(function(){ //スクロールされたら関数実行
13
- var footer = $('footer').offset().top - $(window).height();
14
+ var footer = $('footer').offset().top - $(window).height(); //footerのページ上からの座標 - ウィンドウサイズ
14
- var now = $(document).scrollTop();
15
+ var now = $(document).scrollTop(); // ページ上からの現在位置
15
16
  if(now>footer){
16
- $('#topBtn').fadeIn('slow');
17
+ $('#topBtn').fadeIn('slow'); //フェードイン
17
18
  } else {
18
- $('#topBtn').fadeOut('slow');
19
+ $('#topBtn').fadeOut('slow'); //フェードアウト
19
20
  }
20
21
  });
21
22
  ```
22
- [サンプル](https://cdpn.io/asuchi0819/debug/bGGabBL/WPALYZNENdok)
23
+ [サンプル](https://cdpn.io/asuchi0819/debug/bGGabBL/WPALYZNENdok)
24
+ 簡単に解説入れときました。
25
+
26
+ > footerのページ上からの座標 - ウィンドウサイズ
27
+
28
+ の部分ですがウィンドウサイズを引かないとウインドウの上まで要素が行かないとフェードインしなくなってしまいます。

1

追記

2019/11/01 12:51

投稿

kyoya0819
kyoya0819

スコア10434

answer CHANGED
@@ -1,3 +1,22 @@
1
1
  > スクロールに連動して要素がふわっとあらわれるのを実現するスクリプトやプラグインがあれば教えて下さい
2
2
 
3
- 検索すればいくらでも見つかると思いますがほとんどはwindow.scrollで発火してoffsetで要素の位置を取得してscrollTopで表示領域の上の位置を取得して画面領域を引いてifでfadeInやらfadeOutやらを制御してます。
3
+ 検索すればいくらでも見つかると思いますがほとんどはwindow.scrollで発火してoffsetで要素の位置を取得してscrollTopで表示領域の上の位置を取得して画面領域を引いてifでfadeInやらfadeOutやらを制御してます。
4
+
5
+ ---
6
+
7
+ 別の質問の使い回しですが以下のようなjQueryを書くことで
8
+ footerが表示領域に入ったら#topBtnをフェードイン
9
+ 表示領域外になったらフェードアウトすることができます。
10
+
11
+ ```jQuery
12
+ $(window).scroll(function(){
13
+ var footer = $('footer').offset().top - $(window).height();
14
+ var now = $(document).scrollTop();
15
+ if(now>footer){
16
+ $('#topBtn').fadeIn('slow');
17
+ } else {
18
+ $('#topBtn').fadeOut('slow');
19
+ }
20
+ });
21
+ ```
22
+ [サンプル](https://cdpn.io/asuchi0819/debug/bGGabBL/WPALYZNENdok)