2017-09-13 4 views
2

안녕하세요, 내 페이지에서 게으른로드를 사용하려고합니다. 첫눈에는 첫 번째 3 div 아이가 표시됩니다. 그런 다음 스크롤 후 크기에 따라 증가합니다. 더 많은 정보를로드하려면 클릭 행동을 시도했습니다. 하지만 스크롤 기능을 추가하고 싶습니다. 내 코드 아래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

는 nelow 겹 얼마나 확인하고 콘텐츠로드 : 'distanceToBottom = $ (문서) .height의를() - $ (window) .height() - $ (window) .scrollTop();' – user2520818

+0

@ user2520818 ur 주석 주셔서 감사합니다. jsfiddle에서 샘플을 공유해주세요. –

+0

일부 타사 플러그인, libs : 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

답변 해 주셔서 감사합니다. 여기에 약간의 이상한 찾고 때 나는 주요 div에서 오버플로 y를 사용합니다. –

+0

@LemonKazi mouseover 이벤트에서 스크롤 막대를 표시하기 위해 위 코드 스 니펫을 편집했습니다. 오버플로를 사용하여이 작업을 수행하려고합니다. – Piyush

+0

좋습니다. 신청서에 신청했습니다. jsfiddle에서 작동하지만 내 라이브 페이지에서는 작동하지 않습니다. 왜 나 한테 제안 할 수 있니? –