\r\n \r\n \r\n \r\n\r\n\r\n```\r\n\r\n```css\r\n@charset \"UTF-8\";\r\n/* <====== 全体共通 ======> */\r\n* {\r\n margin: 0;\r\n padding: 0;\r\n -webkit-box-sizing: border-box;\r\n box-sizing: border-box;\r\n}\r\n\r\nhtml {\r\n scroll-behavior: smooth;\r\n font-size: 16px;\r\n}\r\n\r\ntitle {\r\n width: 16px;\r\n height: 16px;\r\n padding-left: 30px;\r\n line-height: 30px;\r\n background: url(.../img/アイコン.jpg) no-repeat;\r\n}\r\n\r\np {\r\n line-height: 2rem;\r\n font-size: 0.875rem;\r\n}\r\n\r\nul li {\r\n list-style: none;\r\n padding: 0.5rem;\r\n}\r\n\r\na {\r\n text-decoration: none;\r\n color: #fff;\r\n}\r\n\r\nh2 {\r\n font-size: 2rem;\r\n}\r\n\r\n.flex {\r\n display: -webkit-box;\r\n display: -webkit-flex;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -webkit-box-pack: center;\r\n -webkit-justify-content: center;\r\n -ms-flex-pack: center;\r\n justify-content: center;\r\n -webkit-box-align: center;\r\n -webkit-align-items: center;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n}\r\n\r\n.font-title {\r\n font-family: \"Caveat\", cursive;\r\n}\r\n\r\n```\r\n\r\n````js\r\n/* <====== burger-menu ======> */\r\n\r\n$(\".burger-btn\").on(\"click\", function () {\r\n $(\".burger-btn\").toggleClass(\"close\");\r\n $(\".nav-header-menu\").fadeToggle(500);\r\n $(\"body\").toggleClass(\"noscroll\");\r\n});\r\n\r\n$(\"#nav-menu a[href]\").on(\"click\", function (event) {\r\n $(\".burger-btn\").trigger(\"click\");\r\n});\r\n\r\n/* <====== animation ======> */\r\n\r\nScrollReveal().reveal(\".animate\", {\r\n origin: \"bottom\",\r\n distance: \"50px\",\r\n duration: 800,\r\n viewFactor: 0.5,\r\n reset: true,\r\n});\r\n\r\n/* <====== button ======> */\r\n\r\n$(document).ready(function () {\r\n $(\"#top-button\").hide();\r\n $(window).on(\"scroll\", function () {\r\n if ($(this).scrollTop() > 20) {\r\n $(\"#top-button\").fadeIn(\"fast\");\r\n } else {\r\n $(\"#top-button\").fadeOut(\"fast\");\r\n }\r\n scrollHeight = $(document).height();\r\n scrollPosition = $(window).height() + $(window).scrollTop();\r\n footHeight = $(\"footer\").innerHeight();\r\n if (scrollHeight - scrollPosition <= footHeight) {\r\n $(\"#top-button\").css({\r\n position: \"absolute\",\r\n });\r\n } else {\r\n $(\"#top-button\").css({\r\n position: \"fixed\",\r\n });\r\n }\r\n });\r\n\r\n $(\"##top-button\").click(function () {\r\n $(\"body,html\").animate(\r\n {\r\n scrollTop: 0,\r\n },\r\n 800\r\n );\r\n return false;\r\n });\r\n});\r\n\r\n```","answerCount":1,"upvoteCount":0,"datePublished":"2021-04-11T09:24:07.985Z","dateModified":"2021-04-11T09:24:07.985Z","acceptedAnswer":{"@type":"Answer","text":"```js\r\nfootHeight = $(\"footer\").offset().top; \r\n if (scrollPosition > footHeight) { \r\n\r\n```\r\njs部分を上記のように変更しましたら解決しました。","dateModified":"2021-04-14T01:21:20.302Z","datePublished":"2021-04-14T01:21:20.302Z","upvoteCount":0,"url":"https://teratail.com/questions/332691#reply-459931"},"suggestedAnswer":[],"breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@id":"https://teratail.com","name":"トップ"}},{"@type":"ListItem","position":2,"item":{"@id":"https://teratail.com/tags/JavaScript","name":"JavaScriptに関する質問"}},{"@type":"ListItem","position":3,"item":{"@id":"https://teratail.com/questions/332691","name":"ふわっと出て決まった高さで止まるスムーススクロールfooter直前で消したい"}}]}}}
質問するログイン新規登録

Q&A

解決済

1回答

1064閲覧

ふわっと出て決まった高さで止まるスムーススクロールfooter直前で消したい

TMTN

総合スコア53

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2021/04/11 09:24

0

0

ふわっと出て決まった高さで止まるスムーススクロールfooter直前で消したい

ポートフォリオ作成しており、JavaScripでふわっと出て決まった高さで止まるスムーススクロールを
実装したくボタンを作っておりますが、footer位置の高さで止めたい(footerに被らないように)のですが、
現状headerでは、しっかりと上にスクロールするとふわっとボタンが現れますが、
footerはボタンが被ってしまっております。

ちょうどスクロールを下にした時にfooter直前でふわっとボタンを消えるようにしたいです。

分かる方いらっしゃいましたらお力添えいただけませんでしょうか。

よろしくお願いいたします。

html

1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <meta http-equiv="X-UA-Compatible" content="ie=edge"> 7 <link rel="stylesheet" href="css/works.css" /> 8 <title>xxx xxxx xxx</title> 9</head> 10<header> 11 <div class="nav-inner flex"> 12 <div class="nav-title flex font-title"> 13 <div class="nav-main-title">xxx xxx</div> 14 <div class="nav-sub-title">PORTFOLIO</div> 15 </div> 16 <div class="nav-header-menu"> 17 <nav class="nav-sns-menu"> 18 <ul class="nav-sns-list"> 19 <li class="nav-item"><a href="xxx"><i class="nav-snu-color fab fa-twitter"></a></i></li> 20 <li class="nav-item"><a href="xxx"><i class="nav-snu-color fab fa-instagram"></i></a></li> 21 <li class="nav-item"><a href="xxx"><i class="nav-snu-color fab fa-facebook-square"></i></a></li> </ul> 22 </nav> 23 <nav class="nav-menu"> 24 <ul class="nav-list"> 25 <li class="nav-item"><a href="portfolio.html">HOME</a></li> 26 <li class="nav-item"><a href="portfolio.html#about">ABOUT</a></li> 27 <li class="nav-item"><a href="selfpr.html">SELF PR</a></li> 28 <li class="nav-item"><a href="portfolio.html#vision">VISION</a></li> 29 <li class="nav-item"><a href="works.html">WORKS</a></li> 30 <li class="nav-item"><a href="blog.html">BLOG</a></li> 31 <li class="nav-item"><a href="portfolio.html#contact">CONTACT</a></li> 32 </ul> 33 </nav> 34 </div> 35 </div> 36 <div class="burger-btn"> 37 <span class="bar bar_top"></span> 38 <span class="bar bar_mid"></span> 39 <span class="bar bar_bottom"></span> 40 </div> 41 </header> 42<body> 43 <div id="content" class="top"> 44 <a href="#" id="top-button"><i class="fas fa-chevron-up"></i></a> 45 </div> 46 <h2 class="works-title fade-in-bottom flex font-title animate" id="works">WORKS</h2> 47 <div class="works-inner flex"> 48 </div> 49 <footer> 50 <div class="footer-nav flex"> 51 <div class="font-title">© 2021 - xxx PORTFOLIO</div> 52 </div> 53 </footer> 54 <script src="https://unpkg.com/scrollreveal"></script> 55 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> 56 <script src="https://cdnjs.cloudflare.com/ajax/libs/lightbox2/2.11.1/js/lightbox.min.js" integrity="sha256-CtKylYan+AJuoH8jrMht1+1PMhMqrKnB8K5g012WN5I=" crossorigin="anonymous"></script> 57 <script src="js/works.js"></script> 58</body> 59</html>

css

1@charset "UTF-8"; 2/* <====== 全体共通 ======> */ 3* { 4 margin: 0; 5 padding: 0; 6 -webkit-box-sizing: border-box; 7 box-sizing: border-box; 8} 9 10html { 11 scroll-behavior: smooth; 12 font-size: 16px; 13} 14 15title { 16 width: 16px; 17 height: 16px; 18 padding-left: 30px; 19 line-height: 30px; 20 background: url(.../img/アイコン.jpg) no-repeat; 21} 22 23p { 24 line-height: 2rem; 25 font-size: 0.875rem; 26} 27 28ul li { 29 list-style: none; 30 padding: 0.5rem; 31} 32 33a { 34 text-decoration: none; 35 color: #fff; 36} 37 38h2 { 39 font-size: 2rem; 40} 41 42.flex { 43 display: -webkit-box; 44 display: -webkit-flex; 45 display: -ms-flexbox; 46 display: flex; 47 -webkit-box-pack: center; 48 -webkit-justify-content: center; 49 -ms-flex-pack: center; 50 justify-content: center; 51 -webkit-box-align: center; 52 -webkit-align-items: center; 53 -ms-flex-align: center; 54 align-items: center; 55} 56 57.font-title { 58 font-family: "Caveat", cursive; 59} 60

js

1/* <====== burger-menu ======> */ 2 3$(".burger-btn").on("click", function () { 4 $(".burger-btn").toggleClass("close"); 5 $(".nav-header-menu").fadeToggle(500); 6 $("body").toggleClass("noscroll"); 7}); 8 9$("#nav-menu a[href]").on("click", function (event) { 10 $(".burger-btn").trigger("click"); 11}); 12 13/* <====== animation ======> */ 14 15ScrollReveal().reveal(".animate", { 16 origin: "bottom", 17 distance: "50px", 18 duration: 800, 19 viewFactor: 0.5, 20 reset: true, 21}); 22 23/* <====== button ======> */ 24 25$(document).ready(function () { 26 $("#top-button").hide(); 27 $(window).on("scroll", function () { 28 if ($(this).scrollTop() > 20) { 29 $("#top-button").fadeIn("fast"); 30 } else { 31 $("#top-button").fadeOut("fast"); 32 } 33 scrollHeight = $(document).height(); 34 scrollPosition = $(window).height() + $(window).scrollTop(); 35 footHeight = $("footer").innerHeight(); 36 if (scrollHeight - scrollPosition <= footHeight) { 37 $("#top-button").css({ 38 position: "absolute", 39 }); 40 } else { 41 $("#top-button").css({ 42 position: "fixed", 43 }); 44 } 45 }); 46 47 $("##top-button").click(function () { 48 $("body,html").animate( 49 { 50 scrollTop: 0, 51 }, 52 800 53 ); 54 return false; 55 }); 56}); 57 58```

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

js

1footHeight = $("footer").offset().top; 2 if (scrollPosition > footHeight) { 3

js部分を上記のように変更しましたら解決しました。

投稿2021/04/14 01:21

TMTN

総合スコア53

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.29%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問