2017-03-03 2 views
0
<script> 
$(function() { 
    $(".griditem").slice(0, 12).show(); 
    $("#loadMore").on('click', function (e) { 
     e.preventDefault(); 
     $(".griditem:hidden").slice(0, 12).slideDown(); 
     if ($(".griditem:hidden").length == 0) { 
      $("#load").fadeOut('slow'); 
     } 
     $('html,body').animate({ 
      scrollTop: $(this).offset().top 
     }, 1500); 
    }); 
}); 
</script> 

このコードでは、より多くのdivをロードするためにボタンを押す必要がありますが、ボタンを押す必要がないようにスクロールするときに自動的に行う方法を教えてください。このコードを変更して表示されるようにするにはどうすればよいですか?

http://codepen.io/anon/pen/KWMKZx

+0

を試しています。あなたはそれを外に置くべきです。 –

答えて

0

あなたがしたいポイントにいつでもユーザーがスクロールをチェックできるようにするには、スクロールイベントにイベントリスナーを添付することができます。ここで

var flag = true; 
$(document).scroll(function(){ 
    var st = $(document).scrollTop(); 
    var viewportHeight = $(window).height(); 
    var offset = $('#loadMore').offset().top; //You can change #loadMore for whatever element you want to fire the event when the user scrolls to. 
    if (st + viewportHeight > offset && flag){ //You can change the number 10. This means "When scrolled 10 pixels more than the top border of #loadMore" 
    $('#loadMore').trigger("click"); 
    flag = false; //This flag is just so that the click doesnt get triggered a lot of times unnecesary. 
    window.setTimeout(function(){flag=true;},200); 
    } 
}); 

Code

+0

あなたはcodepenに入れることができます –

+0

@AchmedZuzali私は今codepenをアップロードしました。私はまた、コードに少し変更を加えて、必要な変数 'viewportHeight'を追加しました。 –

0

はあなた `onClick`イベントハンドラの下に置くためです。この

function loadIt(){ 
    $(".griditem").slice(0, 12).show(); 
     $(".griditem:hidden").slice(0, 12).slideDown(); 
     if ($(".griditem:hidden").length == 0) { 
      $("#load").fadeOut('slow'); 
     } 
     $('html,body').animate({ 
      scrollTop: $(this).offset().top 
     }, 1500); 
} 
$(window).scroll(function(){ 
    if($(window).scrollTop() + $(window).height() > $(document).height() -20) { 
     loadIt(); 
    } 
}); 
+0

それは私のために働いていないので、codepenに入れることができますか? –

関連する問題