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

質問編集履歴

1

コード修正

2021/06/02 19:23

投稿

jal0994
jal0994

スコア20

title CHANGED
File without changes
body CHANGED
@@ -1,4 +1,4 @@
1
- https://yuyauver98.me/footer-stop-btn/
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
- scrollHeight = $(document).height();
24
+ scrollHeight = $(document).height(); //ドキュメントの高さ
26
- scrollPosition = $(window).height() + $(window).scrollTop();
25
+ scrollPosition = $(window).height() + $(window).scrollTop(); //現在地
27
- footerHeight = $(".Footer").innerHeight();
26
+ footHeight = $("footer").innerHeight(); //footerの高さ(=止めたい位置)
28
- if ( scrollHeight - scrollPosition <= footerHeight ) {
27
+ if ( scrollHeight - scrollPosition <= footHeight ) { //ドキュメントの高さと現在地の差がfooterの高さ以下になったら
29
- $(".CTA").css({
28
+ $("#topBtn").css({
30
- "position":"absolute",
29
+ "position":"absolute", //pisitionをabsolute(親:wrapperからの絶対値)に変更
31
- "bottom": footerHeight
30
+ "bottom": footHeight + 20 //下からfooterの高さ + 20px上げた位置に配置
32
- });
31
+ });
33
- } else {
32
+ } else { //それ以外の場合は
34
- $(".CTA").css({
33
+ $("#topBtn").css({
35
- "position":"fixed",
34
+ "position":"fixed", //固定表示
36
- "bottom": "0px",
35
+ "bottom": "20px" //下から20px上げた位置に
37
- });
36
+ });
38
- }
37
+ }
39
- });
38
+ });