2017-09-13 68 views
2

嗨我想在我的頁面中使用延遲加載。首先看它會顯示第一個3格子。然後滾動後它會根據大小增加。 我嘗試了一些點擊行動加載更多。但我想添加滾動功能。下面我的代碼jQuery如何使用延遲加載滾動加載更多內容

$(document).ready(function() { 
 
    size_li = $("#myList li").size(); 
 
    x=3; 
 
    $('#myList li:lt('+x+')').show(); 
 
    $('#loadMore').click(function() { 
 
     x= (x+5 <= size_li) ? x+5 : size_li; 
 
     $('#myList li:lt('+x+')').show(); 
 
    }); 
 
    $('#showLess').click(function() { 
 
     x=(x-5<0) ? 3 : x-5; 
 
     $('#myList li').not(':lt('+x+')').hide(); 
 
    }); 
 
});
#myList li{ display:none; 
 
} 
 
#loadMore { 
 
    color:green; 
 
    cursor:pointer; 
 
} 
 
#loadMore:hover { 
 
    color:black; 
 
} 
 
#showLess { 
 
    color:red; 
 
    cursor:pointer; 
 
} 
 
#showLess:hover { 
 
    color:black; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul id="myList"> 
 
    <li>One</li> 
 
    <li>Two</li> 
 
    <li>Three</li> 
 
    <li>Four</li> 
 
    <li>Five</li> 
 
    <li>Six</li> 
 
    <li>Seven</li> 
 
    <li>Eight</li> 
 
    <li>Nine</li> 
 
    <li>Ten</li> 
 
    <li>Eleven</li> 
 
    <li>Twelve</li> 
 
    <li>Thirteen</li> 
 
    <li>Fourteen</li> 
 
    <li>Fifteen</li> 
 
    <li>Sixteen</li> 
 
    <li>Seventeen</li> 
 
    <li>Eighteen</li> 
 
    <li>Nineteen</li> 
 
    <li>Twenty one</li> 
 
    <li>Twenty two</li> 
 
    <li>Twenty three</li> 
 
    <li>Twenty four</li> 
 
    <li>Twenty five</li> 
 
</ul> 
 
<div id="loadMore">Load more</div> 
 
<div id="showLess">Show less</div>

+0

你基本上要聽scroll事件,檢查多少是nelow折,然後加載您的內容: 'distanceToBottom = $(文件).height() - $ (window).height() - $(window).scrollTop();' – user2520818

+0

@ user2520818感謝您的評論。你能不能請我在jsfiddle中分享一個樣品。 –

+0

你可以嘗試一些第三方插件,庫:jQuery.Lazy或jscroll – NguaCon

回答

2
使用jQuery滾動事件

編輯片斷如下。 如果您需要實現任何不同,請告訴我們。

$(document).ready(function() { 
 
    size_li = $("#myList li").size(); 
 
    x=3; 
 
    $('#myList li:lt('+x+')').show(); 
 
    var heightVal = $('#myList').height(); 
 
    $('#myList').css('max-height', heightVal-1); 
 
    $('#myList').bind('mouseover',function(){ 
 
     $('#myList').css('overflow-y', 'auto'); 
 
    }); 
 
    $("#myList").scroll(function() { 
 
     x= (x+5 <= size_li) ? x+5 : size_li; 
 
     $('#myList li:lt('+x+')').show(); 
 
\t \t }); 
 
    /*$('#loadMore').click(function() { 
 
     
 
    }); 
 
    $('#showLess').click(function() { 
 
     x=(x-5<0) ? 3 : x-5; 
 
     $('#myList li').not(':lt('+x+')').hide(); 
 
    });*/ 
 
});
#myList { 
 
    /*max-height : 100px;*/ 
 
    overflow-y : hidden; 
 
} 
 

 
#myList li{ 
 
    display:none; 
 
} 
 
#loadMore { 
 
    color:green; 
 
    cursor:pointer; 
 
} 
 
#loadMore:hover { 
 
    color:black; 
 
} 
 
#showLess { 
 
    color:red; 
 
    cursor:pointer; 
 
} 
 
#showLess:hover { 
 
    color:black; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul id="myList"> 
 
    <li>One</li> 
 
    <li>Two</li> 
 
    <li>Three</li> 
 
    <li>Four</li> 
 
    <li>Five</li> 
 
    <li>Six</li> 
 
    <li>Seven</li> 
 
    <li>Eight</li> 
 
    <li>Nine</li> 
 
    <li>Ten</li> 
 
    <li>Eleven</li> 
 
    <li>Twelve</li> 
 
    <li>Thirteen</li> 
 
    <li>Fourteen</li> 
 
    <li>Fifteen</li> 
 
    <li>Sixteen</li> 
 
    <li>Seventeen</li> 
 
    <li>Eighteen</li> 
 
    <li>Nineteen</li> 
 
    <li>Twenty one</li> 
 
    <li>Twenty two</li> 
 
    <li>Twenty three</li> 
 
    <li>Twenty four</li> 
 
    <li>Twenty five</li> 
 
</ul> 
 
<div id="loadMore">Load more</div> 
 
<div id="showLess">Show less</div>

+0

感謝您的回答。這裏看起來有點奇怪,當我在main div中使用溢出y時。 –

+0

@LemonKazi我編輯了上面的代碼片段來顯示mouseover事件的滾動條。請注意,我們正在嘗試使用溢出來實現此目的 – Piyush

+0

這很好。我申請了我的申請。它在jsfiddle上工作,但不在我的實時頁面上。你可以建議我爲什麼? –