6

私は基本的に、Facebook、Twitter、および他のすべての「無限」スクロール サイトと同じ機能が必要です。現在使用しているコードは次のとおりです。

jQuery(document).ready(function(){
    $ = jQuery;
        $(window).scroll(function(){
            if ($('.iosSlider').is(':visible'))
            {
                if($(window).scrollTop() + $(window).height() == $(document).height())
                {
                $.get('/our-work/fakework.php', function(data) {
                $('#mobile-thumbs').append(data);
                });
                }
             }
        });
});

これは、すべてのデスクトップ ブラウザで問題なく動作します。また、私の Blackberry でも、スクロール ダウン ボタンを何度も押した後に動作することがあります。

しかし、iPhoneでもiPadでも一度も検出されたことはありません。私はそれがビューポートに関係していると思いましたが、誰にもわかりません。

のviewport heightメソッドを使ってみた

<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0">

しかし、これも修正されていないようです!

iDevice でページの下部を検出する方法について、誰かが光を共有してください。

ありがとう!!

オーウェン

4

4 に答える 4

11

何年もデバッグした後、私はそれを見つけました

if($(window).scrollTop() + $(window).height() == $(document).height())

実際に会ったことはありませんでしたが、会ったことはありましたが、ビューポートが移動している間、モバイルサファリはjavascriptを実行しないようです。

これは、ドキュメントの高さでスクロールを正確に停止しない限り (底に弾力があるものがない場合)、同じ高さに等しくなる可能性は非常に低いことを意味します。

そのため、コードを同じ高さに等しくする代わりに、同じかそれ以上かどうかを確認するように変更しただけです。この方法では、スクロールされた場合でもトリガーされます。

そのため、修正は以下にあります

if($(window).scrollTop() + $(window).height() >= $(document).height()){

変更されたコードは次のようになります

jQuery(document).ready(function(){
    $ = jQuery;
        $(window).scroll(function(){
            if ($('.iosSlider').is(':visible'))
            {
                if($(window).scrollTop() + $(window).height() >= $(document).height())
                {
                $.get('/our-work/fakework.php', function(data) {
                $('#mobile-thumbs').append(data);
                });
                }
             }
        });
});

そして今では魅力のように機能しています!

于 2012-06-23T21:33:34.903 に答える
1

同じ問題がありました。コード スニペットはデスクトップでは正常に機能しますが、iOS モバイル デバイスでは機能しません。問題に置き換えdocumentた後body、修正されました。また、画面の下部にいるかどうかを確認することをお勧めします。

if($(window).scrollTop() + $(window).height() > $('body').height() - 200)
于 2015-04-28T01:50:08.990 に答える