質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
jQuery Mobile

jQuery Mobileとはスマートフォンとタブレット用に最適化されたフレームワークです。様々な携帯端末にjQueryで作られたユーザーインターフェイスシステムを提供します。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

558閲覧

アコーディオンメニューで可変する高さの時、指定の位置で消える追尾ボタン(jquery)を実装したい。

aohige

総合スコア1

jQuery Mobile

jQuery Mobileとはスマートフォンとタブレット用に最適化されたフレームワークです。様々な携帯端末にjQueryで作られたユーザーインターフェイスシステムを提供します。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2021/12/09 04:11

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
アコーディオンメニューで可変する高さの時、指定の位置で消える追尾ボタン(jquery)を実装したい。
■■な機能を実装中に以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

アコーディオンメニューと追尾ボタンを組み合わせて使用したいと考えています。
上から700pxスクロールしたところでボタンが現れて下から500pxあたりで消えるというような仕様を想定しています。
アコーディオンメニューを閉じた状態ですと想定通りのところで消えてくれますが、アコーディオンメニューを開いた状態ですと
かなり高い位置でボタンが消えてしまいます。
jqueryで高さが可変した時の再取得方法がわからないのでご教授いただけないでしょうか。
よろしくお願い致します。
エラーメッセージ

### 該当のソースコード jquery ソースコード jQuery(window).on('scroll',function(){ if( 700 > jQuery(this).scrollTop()){ jQuery('.track-btn').removeClass('is-show'); }else if( 2800 < jQuery(this).scrollTop()) { jQuery('.track-btn').removeClass('is-show'); }else{ jQuery('.track-btn').addClass('is-show'); } }); ### 試したこと 1. jqueryでの高さ再取得方法(load resize等)を試したNG。 2.jqueryでの追尾ボタン関連(scrollTop等)の記事を10記事を読み試したがNG ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答1

0

ベストアンサー

上から700pxスクロールしたところでボタンが現れて下から500pxあたりで消えるというような仕様を想定しています。

スクロールトップ(スクロールした高さ)が、ドキュメント全体の高さ-画面の高さ-500 を超えたら非表示と考えればいいでしょう。

js

1jQuery(window).on('scroll',function(){ 2 3 if( 700 > jQuery(this).scrollTop()){ 4 jQuery('.track-btn').removeClass('is-show'); 5 }else if($(document).height()-$(window).height()-500 < jQuery(this).scrollTop()) { 6 jQuery('.track-btn').removeClass('is-show'); 7 }else{ 8 jQuery('.track-btn').addClass('is-show'); 9 } 10});

それぞれの高さは下記の画像が分かりやすいと思います。

【jQuery】各要素の高さについて

投稿2021/12/09 06:11

hatena19

総合スコア33699

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

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

aohige

2021/12/09 06:36

ありがとうございます!うまくいきました。 大変助かりました!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問