ユーザーが一番下までスクロールしたかどうかを確認します


667

ユーザーが一番下までスクロールしたときにコンテンツが読み込まれるページネーションシステム(Facebookのようなもの)を作成しています。そのための最善の方法は、ユーザーがページの下部にいるときに見つけて、ajaxクエリを実行してさらに多くの投稿を読み込むことです。

唯一の問題は、ユーザーがjQueryを使用してページの一番下までスクロールしたかどうかを確認する方法がわからないことです。何か案は?

ユーザーがjQueryでページの一番下までスクロールしたことを確認する方法を見つける必要があります。


面白いことに、一番下までスクロールしたときにどの関数が呼び出されているのかを調べようとしているので、この刺激的な「機能」をブロックできます。
内部石

:React.jsソリューションは、このリンクのかもしれないのヘルプについてstackoverflow.com/a/53158893/4265546
raksheetbhat

回答:


1022

次のように、で.scroll()イベントを使用しwindowます。

$(window).scroll(function() {
   if($(window).scrollTop() + $(window).height() == $(document).height()) {
       alert("bottom!");
   }
});

ここテストできます。これにより、ウィンドウの最上部のスクロールが取得されるため、どれだけ下にスクロールされ、表示されているウィンドウの高さが追加され、コンテンツ全体の高さに等しいかどうかが確認されます(document)。あなたは、ユーザーがある場合は代わりにチェックしたい場合は近くの下、それは次のようになりたいです:

$(window).scroll(function() {
   if($(window).scrollTop() + $(window).height() > $(document).height() - 100) {
       alert("near bottom!");
   }
});

ここそのバージョンをテストでき100ます。トリガーする下部からのピクセルに合わせて調整してください。


32
いつものように、私の前に着きます。とにかく、OPに対して、投稿のコンテナーがある場合は、「ウィンドウ」の代わりにそのIDを使用します。また、最後の.height()をscrollHeightに変更することもできます
クリスチャン

4
Firefoxはalert( "bottom!");を呼び出します。何度も(クロムとサファリでうまく動作します)
Marco Matarazzi

3
console.log()警告の代わりに行うと、コマンドが繰り返される場合があります。
ユルゲンポール

19
組み合わせは、ユーザがスクロール停止するまで発射を防止するために、アンダーユーティリティ内)(_.debounceでこれを使用することである@KevinVellaベラ良い- underscorejs.org/#debounce -
JohnnyFaldo

3
@NickCraver純粋なjs実装はありますか?
Dewsworld 2015年

116

Nick Craverの答えは問題なく機能し、$(document).height()ブラウザによって値が異なるという問題を回避します。

すべてのブラウザで機能させるには、James Padolseyの次の関数を使用します。

function getDocHeight() {
    var D = document;
    return Math.max(
        D.body.scrollHeight, D.documentElement.scrollHeight,
        D.body.offsetHeight, D.documentElement.offsetHeight,
        D.body.clientHeight, D.documentElement.clientHeight
    );
}

の代わりに$(document).height()、最終的なコードは次のようになります。

$(window).scroll(function() {
       if($(window).scrollTop() + $(window).height() == getDocHeight()) {
           alert("bottom!");
       }
   });

6
彼はわずかに圧縮されたバージョン関数getDocHeight(){var D = document;で更新しました。return Math.max(D.body.scrollHeight、D.documentElement.scrollHeight、D.body.offsetHeight、D.documentElement.offsetHeight、D.body.clientHeight、D.documentElement.clientHeight); }
2013

下部ではなく上部(Chrome)に到達すると警告が表示されます。
Damien Roche

特にとにかくマージンがある場合minmax、の代わりに使用する方がよい場合があります。これは、ユーザーが誤ってページの下部と思われるところまでスクロールできないようにするためです。
ソロモンウッコ

103

これがまだ投稿されていない理由は正確にはわかりませんが、MDNのドキュメントによると、最も簡単な方法はネイティブのJavaScriptプロパティを使用することです:

element.scrollHeight - element.scrollTop === element.clientHeight

スクロール可能な要素の下部にいる場合はtrueを返します。したがって、単純にjavascriptを使用します。

element.addEventListener('scroll', function(event)
{
    var element = event.target;
    if (element.scrollHeight - element.scrollTop === element.clientHeight)
    {
        console.log('scrolled');
    }
});

scrollHeight一方で、より正確には、すなわち8から、ブラウザで幅広い支持を持っているclientHeightし、scrollTop両方皆でサポートされています。つまり、6。これはブラウザ間で安全なはずです。


1
これが当てはまらない場合があることに注意してください。Firefox 47は、textarea clientHeightを239と報告しますが、上記の式を下にスクロールすると253になります。多分パディング/ボーダーか何かがそれに影響を与えていますか?どちらの方法でも、ウィグルルームを追加しても、のように問題はありませんvar isAtBottom = ( logField.scrollHeight - logField.scrollTop <= logField.clientHeight + 50 );。これは、すでに一番下にある場合にのみフィールドを自動スクロールするのに役立ちます(ユーザーは、場所を失うことなく、リアルタイムログの特定の部分を手動で調べることができます)。
Beejor

一方が小さい10進数を返し、もう一方が整数を返す可能性があるため(例:200.181819304947および200)、偽陰性を返す可能性があることも付け加えておきます。これにMath.floor()対処するためにを追加しましたが、これがどの程度信頼できるかわかりません。
Hanna

1
私にとって、これはクロスブラウザでは機能しません。Firefoxと比較してChromeではまったく異なる結果が得られます。
Tadej 16

1
<body>要素でこれを試しました。これは、ブラウザーが下ではなく上にスクロールされたときに発生します。
Chris Sobolewski、2017年

10
Math.abs(element.scrollHeight - element.scrollTop - element.clientHeight) <= 3.0(3.0は、状況に適したピクセル許容値に置き換えてください)。これは、(A)ので、移動するための方法であるclientHeightscrollTopと、clientHeightユーザーは何かがあなたのサイトが間違っていると思うかもしれように、すべての整列、(B)3個のピクセルがユーザーにほとんど表示されている場合は、潜在的に3pxエラーにつながる可能性があるすべての丸みを帯びています彼らが「考える」とき、実際にはそうではないときにページの下部にあります。(C)特定のデバイス(特にマウスなしのデバイス)は、スクロール時に奇妙な動作をする場合があります。
ジャックギフィン2018年

50

Nickのソリューションを使用し、アラート/イベントが繰り返し発生する場合は、アラートの例の上にコード行を追加できます。

$(window).scroll(function() {
   if($(window).scrollTop() + $(window).height() > $(document).height() - 100) {
       $(window).unbind('scroll');
       alert("near bottom!");
   }
});

つまり、コードは、ドキュメントの下部から100px以内に初めて到達したときにのみ起動します。上にスクロールしてから下にスクロールしても繰り返されません。これは、Nickのコードを何のために使用しているかによって、役に立たない場合があります。


1
私はコメントし、そのコード行がどこか他の人の答えに関連しているのであるが、意図のために+1であると言ったでしょう!
Nate-Wilkins

回答にコメントを追加する方法を確認できませんでした(まだ確認できません)。
Tim Carr

新しいユーザーは、より多くの担当者を取得しない限り、投稿にコメントを追加できません。
Nate-Wilkins

もしあなたがスクリプトにさせたい変更が存在するかどうかをテストするなら別のものを置くことができるなら、最初の外側が最初です。たとえば、クラスがdivに適用されているとしましょう。これにより、すでに実行されている場合、実行されていなければ2番目がネストされます。
1934286 2013年

ウィンドウ全体ではなく特定のdiv idを選択するにはどうすればよいですか?
James Smith

40

Nick Craverからの受け入れられた優れた回答に加えて、スクロールイベントを抑制し、頻繁に起動されないようにして、ブラウザのパフォーマンス向上させることができます

var _throttleTimer = null;
var _throttleDelay = 100;
var $window = $(window);
var $document = $(document);

$document.ready(function () {

    $window
        .off('scroll', ScrollHandler)
        .on('scroll', ScrollHandler);

});

function ScrollHandler(e) {
    //throttle event:
    clearTimeout(_throttleTimer);
    _throttleTimer = setTimeout(function () {
        console.log('scroll');

        //do work
        if ($window.scrollTop() + $window.height() > $document.height() - 100) {
            alert("near bottom!");
        }

    }, _throttleDelay);
}

これにはおそらくUnderscore.js:underscorejs.orgが必要であることを指摘しておく必要があります。しかし、それは非常に良い点です。重大なパフォーマンスの問題を回避するために、スクロールイベントはほとんど常にスロットルされる必要があります。
ジュードオズボーン2013年

多分それは私だけで、いくつかのベンチマークを使用できますが、すべてのスクロールイベントでclearTimeoutおよびsetTimeoutを呼び出すという考えは好きではありません。私は1 setTimeoutを発行し、そのハンドラーにいくつかのガードを追加します。それはおそらく(もしあれば)単なるミクロ最適化です。
絶望の

これは本当にすてきな追加です!もう1つ改善が考えられます。現在、ユーザーがスクロールを続けた場合、高さをチェックする関数は実行されません。これが問題である場合(たとえば、ユーザーがスクロールを続けているかどうかに関係なく、ユーザーが半分下にスクロールしたときに関数をトリガーする場合)、選択した間隔で複数の呼び出しを禁止しながら、関数が実際に呼び出されることを簡単に確認できます。ここにそれを示す要点があります。gist.github.com/datacarl/7029558
datacarl

何?単純な計算を防ぐために、機械の負荷を呼び出しますか?それがいかに効率的であるかはわかりません
Rambatino '26

37

Nick Craverの回答は、iOS 6 Safari Mobileで動作するように少し変更する必要があり、次のようにする必要があります。

$(window).scroll(function() {
   if($(window).scrollTop() + window.innerHeight == $(document).height()) {
       alert("bottom!");
   }
});

変更$(ウィンドウ).heightを()window.innerHeightは、アドレスバーが非表示になっているときに、追加60PXは、ウィンドウの高さに加えるが、使用しているために行われるべきで$(window).height()はないではない、この変更を反映使用している間、window.innerHeightありません。

window.innerHeightプロパティには、水平スクロールバーの高さ$(window).height()が含まれません(レンダリングされる場合)。水平スクロールバーの高さは含まれません。これはMobile Safariの問題ではありませんが、他のブラウザまたはMobile Safariの将来のバージョンで予期しない動作を引き起こす可能性があります。に変更==すると>=、ほとんどの一般的な使用例でこれを修正できます。

詳細については読むwindow.innerHeightプロパティをここに


window.innerHeightは、私が感謝を成し遂げようとしていたことをより理解しやすくしました!
Amir5000 2014

スクロール後に残りの高さを取得するにはどうすればよいですか?
OPV 2018

20

これはかなりシンプルなアプローチです

const didScrollToBottom = elm.scrollTop + elm.clientHeight == elm.scrollHeight

elm.onscroll = function() {
    if(elm.scrollTop + elm.clientHeight == elm.scrollHeight) {
        // User has scrolled to the bottom of the element
    }
}

elmieから取得した要素はどこにありますかdocument.getElementById


17

以下は、コードのデバッグに役立つコードです。上記の回答をテストしたところ、バグがあることがわかりました。Chrome、IE、Firefox、IPad(Safari)で以下をテストしました。テストするために他にインストールしたものはありません...

<script type="text/javascript">
   $(function() {
      $(window).scroll(function () {
         var docElement = $(document)[0].documentElement;
         var winElement = $(window)[0];

         if ((docElement.scrollHeight - winElement.innerHeight) == winElement.pageYOffset) {
            alert('bottom');
         }
      });
   });
</script>

より簡単な解決策があるかもしれませんが、ITが機能した時点で停止しました

まだ不正なブラウザで問題が解決しない場合は、デバッグに役立つコードを次に示します。

<script type="text/javascript">
   $(function() {
      $(window).scroll(function () {
         var docElement = $(document)[0].documentElement;
         var details = "";
         details += '<b>Document</b><br />';
         details += 'clientHeight:' + docElement.clientHeight + '<br />';
         details += 'clientTop:' + docElement.clientTop + '<br />';
         details += 'offsetHeight:' + docElement.offsetHeight + '<br />';
         details += 'offsetParent:' + (docElement.offsetParent == null) + '<br />';
         details += 'scrollHeight:' + docElement.scrollHeight + '<br />';
         details += 'scrollTop:' + docElement.scrollTop + '<br />';

         var winElement = $(window)[0];
         details += '<b>Window</b><br />';
         details += 'innerHeight:' + winElement.innerHeight + '<br />';
         details += 'outerHeight:' + winElement.outerHeight + '<br />';
         details += 'pageYOffset:' + winElement.pageYOffset + '<br />';
         details += 'screenTop:' + winElement.screenTop + '<br />';
         details += 'screenY:' + winElement.screenY + '<br />';
         details += 'scrollY:' + winElement.scrollY + '<br />';

         details += '<b>End of page</b><br />';
         details += 'Test:' + (docElement.scrollHeight - winElement.innerHeight) + '=' + winElement.pageYOffset + '<br />';
         details += 'End of Page? ';
         if ((docElement.scrollHeight - winElement.innerHeight) == winElement.pageYOffset) {
             details += 'YES';
         } else {
             details += 'NO';
         }

         $('#test').html(details);
      });
   });
</script>
<div id="test" style="position: fixed; left:0; top: 0; z-index: 9999; background-color: #FFFFFF;">

これが誰かの時間を節約してくれることを願っています。


バニラjsのベストアンサー、jQueryソリューションなし。使用var docElement = document.documentElement; var winElement = window
jperelli 2016年

これは2019年です。代わりにwinElement.pageYOffsetを使用することもできますwinElement.scrollY
Noel Abrahams

15

この回答を確認しください

 window.onscroll = function(ev) {
    if ((window.innerHeight + window.scrollY) >= document.body.offsetHeight) {
       console.log("bottom");
    }
};

あなたは行うことができますfooterHeight - document.body.offsetHeightあなたはフッターの近くにあるかフッターに達したかどうかを確認するために


12
var elemScrolPosition = elem.scrollHeight - elem.scrollTop - elem.clientHeight;

要素の下部までの距離スクロールバーを計算します。スクロールバーが下に達した場合は0。


1
私は次のことをし、完璧に働きました。ありがとう。var shouldScroll =(elem.scrollHeight-elem.scrollTop-elem.clientHeight)== 0;
jiminssy 2016年

11

これは私の2セントです。

$('#container_element').scroll( function(){
        console.log($(this).scrollTop()+' + '+ $(this).height()+' = '+ ($(this).scrollTop() + $(this).height())   +' _ '+ $(this)[0].scrollHeight  );
        if($(this).scrollTop() + $(this).height() == $(this)[0].scrollHeight){
            console.log('bottom found');
        }
    });

ソリューションを使用してみましたが、正常に機能しますが、要素にパディングがある場合は、パディングを含めずに要素の純粋な高さを計算するため機能しません。これを解決するために、これを変更しました$(this).scrollTop() + $(this).height() == $(this)[0].scrollHeight=>$(this).scrollTop() + $(this).outerHeight(true) >= $(this)[0].scrollHeight
Taras Chernata

6

クロスブラウザデバウンスを 備えた純粋なJS (かなり良いパフォーマンス

var CheckIfScrollBottom = debouncer(function() {
    if(getDocHeight() == getScrollXY()[1] + window.innerHeight) {
       console.log('Bottom!');
    }
},500);

document.addEventListener('scroll',CheckIfScrollBottom);

function debouncer(a,b,c){var d;return function(){var e=this,f=arguments,g=function(){d=null,c||a.apply(e,f)},h=c&&!d;clearTimeout(d),d=setTimeout(g,b),h&&a.apply(e,f)}}
function getScrollXY(){var a=0,b=0;return"number"==typeof window.pageYOffset?(b=window.pageYOffset,a=window.pageXOffset):document.body&&(document.body.scrollLeft||document.body.scrollTop)?(b=document.body.scrollTop,a=document.body.scrollLeft):document.documentElement&&(document.documentElement.scrollLeft||document.documentElement.scrollTop)&&(b=document.documentElement.scrollTop,a=document.documentElement.scrollLeft),[a,b]}
function getDocHeight(){var a=document;return Math.max(a.body.scrollHeight,a.documentElement.scrollHeight,a.body.offsetHeight,a.documentElement.offsetHeight,a.body.clientHeight,a.documentElement.clientHeight)}

デモ: http : //jsbin.com/geherovena/edit?js,output

PS: 、、Debouncer 私が書かれていませんgetScrollXYgetDocHeight

私はその働きを示しています


完璧です。FirefoxおよびChromeでテスト済み
Erlisar Vasquez 2018

次のエラーが表示されます。3つの引数が必要ですが、2を受け取りました。引数 'c'が指定されていません。
Soberの

6

プレーンなjsでの私の解決策:

let el=document.getElementById('el');
el.addEventListener('scroll', function(e) {
    if (this.scrollHeight - this.scrollTop - this.clientHeight<=0) {
        alert('Bottom');
    }
});
#el{
  width:400px;
  height:100px;
  overflow-y:scroll;
}
<div id="el">
<div>content</div>
<div>content</div>
<div>content</div>
<div>content</div>
<div>content</div>
<div>content</div>
<div>content</div>
<div>content</div>
<div>content</div>
<div>content</div>
<div>content</div>
</div>


4

下端までスクロールする場合、一致条件としてこれを試してください

if ($(this)[0].scrollHeight - $(this).scrollTop() == 
    $(this).outerHeight()) {

    //code for your custom logic

}

3

ニックはうまく答えますが、ユーザーがウィンドウをズームしている場合は、スクロール中に繰り返し実行するか、まったく機能しない機能があります。最初の高さのmath.roundだけの簡単な修正を思いついたのですが、想定どおりに機能します。

    if (Math.round($(window).scrollTop()) + $(window).innerHeight() == $(document).height()){
    loadPagination();
    $(".go-up").css("display","block").show("slow");
}

3

次のコードを試すことができます

$("#dashboard-scroll").scroll(function(){
    var ele = document.getElementById('dashboard-scroll');
    if(ele.scrollHeight - ele.scrollTop === ele.clientHeight){
       console.log('at the bottom of the scroll');
    }
});

2

これにより、スクロール可能な要素(つまり、window)をチェックするときに正確な結果が得られます。

// `element` is a native JS HTMLElement
if ( element.scrollTop == (element.scrollHeight - element.offsetHeight) )
    // Element scrolled to bottom

offsetHeight与える必要があり、実際の目に見える(パディング、マージン、を含む素子の高さスクロールバー)、そしてscrollHeightある全体不可視(オーバーフロー)領域を含む要素の高さ。

jQuery.outerHeight()JSと同様の結果が得られるはず.offsetHeightです。MDNのドキュメントは、offsetHeightそのクロスブラウザサポートについて不明確です。より多くのオプションをカバーするために、これはより完全です:

var offsetHeight = ( container.offsetHeight ? container.offsetHeight : $(container).outerHeight() );
if  ( container.scrollTop == (container.scrollHeight - offsetHeight) ) {
   // scrolled to bottom
}

試すMath.floor(element.scrollTop) === element.scrollHeight - element.offsetHeight場合にscrollTopスプライトはそれがないと動作しません小数であるMath.floor()
ミハイルMichailidis

1

これらのソリューションはすべて、FirefoxとChromeでは機能しないため、Miles O'Keefemeder omuralievのカスタム関数を次のように使用します。

function getDocHeight()
{
    var D = document;
    return Math.max(
        D.body.scrollHeight, D.documentElement.scrollHeight,
        D.body.offsetHeight, D.documentElement.offsetHeight,
        D.body.clientHeight, D.documentElement.clientHeight
    );
}

function getWindowSize()
{
  var myWidth = 0, myHeight = 0;
  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    myWidth = window.innerWidth;
    myHeight = window.innerHeight;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    myWidth = document.documentElement.clientWidth;
    myHeight = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    myWidth = document.body.clientWidth;
    myHeight = document.body.clientHeight;
  }
  return [myWidth, myHeight];
}

$(window).scroll(function()
{
    if($(window).scrollTop() + getWindowSize()[1] == getDocHeight())
    {
        alert("bottom!");
    }
});

1

受け入れられた答えがうまくいかなかったので、ここに私の2セントを示します。

var documentAtBottom = (document.documentElement.scrollTop + window.innerHeight) >= document.documentElement.scrollHeight;

1

代わりに使用して、スクロールイベントを聴いの交差点オブザーバーである安価な最後の要素は、(平均ユーザーが下にスクロールしてあります)、ビューポートに表示されていたかどうかをチェックするための1。また、polyfillを使用したIE7でもサポートされています

var observer = new IntersectionObserver(function(entries){
   if(entries[0].isIntersecting === true)
      console.log("Scrolled to the bottom");
   else
      console.log("Not on the bottom");
}, {
   root:document.querySelector('#scrollContainer'),
   threshold:1 // Trigger only when whole element was visible
});

observer.observe(document.querySelector('#scrollContainer').lastElementChild);
#scrollContainer{
  height: 100px;
  overflow: hidden scroll;
}
<div id="scrollContainer">
  <div>Item 1</div>
  <div>Item 2</div>
  <div>Item 3</div>
  <div>Item 4</div>
  <div>Item 5</div>
  <div>Item 6</div>
  <div>Item 7</div>
  <div>Item 8</div>
  <div>Item 9</div>
  <div>Item 10</div>
</div>


交差オブザーバーの問題は、開始ウィンドウが比較的小さい場合(スクロールバーなしで画像をフェッチする前の基本レイアウトなど)、オブザーバーコールバックがすぐにトリガーされることです。スクロールリスナーは、実際には人がスクロールするのを待ちます。また、画像などの最初のバッチがフェッチされるまでスクロールバーは表示されません。したがって、Intersection Observerがすべて1つのソリューションに含まれるわけではありません。
アレクス

@Aleks .observe(...)ユーザーがスクロールコンテナーをホバー/タッチしたときなどに、イベントリスナーでを呼び出して、すぐにトリガーされないようにすることができます。
StefansArya

0

JQueryなしのアプローチを示します。単純なJS関数:

function isVisible(elem) {
  var coords = elem.getBoundingClientRect();
  var topVisible = coords.top > 0 && coords.top < 0;
  var bottomVisible = coords.bottom < shift && coords.bottom > 0;
  return topVisible || bottomVisible;
}

使い方の簡単な例:

var img = document.getElementById("pic1");
    if (isVisible(img)) { img.style.opacity = "1.00";  }

5
これは質問の答えにはなりません。問題は、ユーザーがウィンドウを一番下までスクロールしたことを検出する方法でした。コードは、特定の要素が表示されているかどうかをチェックしています。
Peter Hall

0

@ddanone answearを使用し、Ajax呼び出しを追加しました。

$('#mydiv').on('scroll', function(){
  function infiniScroll(this);
});

function infiniScroll(mydiv){
console.log($(mydiv).scrollTop()+' + '+ $(mydiv).height()+' = '+ ($(mydiv).scrollTop() + $(mydiv).height())   +' _ '+ $(mydiv)[0].scrollHeight  );

if($(mydiv).scrollTop() + $(mydiv).height() == $(mydiv)[0].scrollHeight){
    console.log('bottom found');
    if(!$.active){ //if there is no ajax call active ( last ajax call waiting for results ) do again my ajax call
        myAjaxCall();
    }
}

}


0

ニックの答えの繰り返し警告を停止するには

ScrollActivate();

function ScrollActivate() {
    $(window).on("scroll", function () {
        if ($(window).scrollTop() + $(window).height() > $(document).height() - 100) {
            $(window).off("scroll");
            alert("near bottom!");
        }
    });
}

0

Google Chromeでは、電話をかけるとページ全体の高さがわかります $(window).height()

代わりに、を使用window.innerHeightしてウィンドウの高さを取得します。必要なチェックは次のとおりです。

if($(window).scrollTop() + window.innerHeight > $(document).height() - 50) {
    console.log("reached bottom!");
}

0

どうやら私のために働いたのは、次のような「ウィンドウ」ではなく「ボディ」でした:

$('body').scroll(function() {


 if($('body').scrollTop() + $('body').height() == $(document).height()) {
     //alert at buttom
 }
 });

ブラウザー間の互換性のために使用:

  function getheight(){
    var doc = document;
    return  Math.max(
        doc.body.scrollHeight, doc.documentElement.scrollHeight,
        doc.body.offsetHeight, doc.documentElement.offsetHeight,
        doc.body.clientHeight, doc.documentElement.clientHeight

        );
   }

そして$(document).height()の代わりに関数getheight()を呼び出します

$('body').scroll(function() {


   if($('body').scrollTop() + $('body').height() == getheight()  ) {
     //alert at bottom
 }
});

底近くでの使用:

$('body').scroll(function() {


if($('body').scrollTop() + $('body').height() > getheight() -100 ) {
    //alert near bottom
 }
 });
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.