質問編集履歴
1
コード修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
https://
|
1
|
+
https://ss-complex.com/work_top_back_button/
|
2
2
|
上記ページのフッター手前で止まるボタンについてですが、
|
3
3
|
コードを使用すると、PCであれば問題ない挙動なのですが、スマホで下にスクロールしていくとフッターの要素と少し被った状態に一瞬なってからフッターの上に表示されるという不自然な動きになります。
|
4
4
|
|
@@ -21,19 +21,18 @@
|
|
21
21
|
|
22
22
|
|
23
23
|
<既存のソースコード>
|
24
|
-
$(window).on("scroll", function() {
|
25
|
-
|
24
|
+
scrollHeight = $(document).height(); //ドキュメントの高さ
|
26
|
-
|
25
|
+
scrollPosition = $(window).height() + $(window).scrollTop(); //現在地
|
27
|
-
|
26
|
+
footHeight = $("footer").innerHeight(); //footerの高さ(=止めたい位置)
|
28
|
-
|
27
|
+
if ( scrollHeight - scrollPosition <= footHeight ) { //ドキュメントの高さと現在地の差がfooterの高さ以下になったら
|
29
|
-
|
28
|
+
$("#topBtn").css({
|
30
|
-
|
29
|
+
"position":"absolute", //pisitionをabsolute(親:wrapperからの絶対値)に変更
|
31
|
-
|
30
|
+
"bottom": footHeight + 20 //下からfooterの高さ + 20px上げた位置に配置
|
32
|
-
|
31
|
+
});
|
33
|
-
|
32
|
+
} else { //それ以外の場合は
|
34
|
-
|
33
|
+
$("#topBtn").css({
|
35
|
-
|
34
|
+
"position":"fixed", //固定表示
|
36
|
-
|
35
|
+
"bottom": "20px" //下から20px上げた位置に
|
37
|
-
|
36
|
+
});
|
38
|
-
|
37
|
+
}
|
39
|
-
|
38
|
+
});
|