무한 스크롤링을 작성했습니다. 무한 스크롤링을 수행하는 가장 좋은 방법은 무엇이 될지 궁금합니다.회전 목마를 무한히 스크롤하지 마십시오.
지금 사용자는 한 번에 볼 수있는 항목 수를 numSlide로 지정합니다. 기본적으로 사용자는 오른쪽 화살표를 클릭하고 prevLoop
또는 nextLoop
중 하나를 호출하는 .animate() 메서드를 사용합니다. 둘 중 하나는 기본적으로 지정된 요소 수를 가져와 그에 따라 <ul></ul>
의 시작 또는 끝으로 이동합니다.
나는 지금까지 가지고 있지만 무한 스크롤을 해제하는 옵션을 소개하려고합니다 (예 : 목록의 항목 만 표시하고 각면의 끝에 도달하면 prevLoop/nextLoop.
내 아이디어는 기본적으로 infinite라는 변수를 설정합니다. 클릭 기능 (rightClick()
및 leftClick()
) 중 하나가 무한인지를 확인하고, 맞으면 정상 스크롤 코드를 사용합니다. 내 생각에 : 안에있는 요소의 수를 numElements
안에 넣고 각 클릭을 통해 count 변수를 증가시키고 count가 numElements와 같거나 그보다 작은 지 확인합니다. 만약 > numElements
이면 신분증 어느 기능이 더 움직이는 것을 막을 수 있습니다. 나는 이것이 꽤 지저분 해 지거나 바쁜 것처럼 느낄 것이다.
var count = numElements;
function rightClick() {
var cfirst = container.find('li').first(), //the current first element
tomove = cfirst.nextLoop(numSlide - 1, true), //the elements that need to move
nfirst = tomove.last().nextLoop(1, false); //the new first element
/*
Pretend we currently have [A, B, C, D, E, F, G, H, I] and numSlide is 3
cfirst === [A]
tomove === [A, B, C]
nfirst === [D]
*/
var indent = cfirst.offset().left - nfirst.offset().left;
if (infinite) {
ul.not(':animated').animate({ // not:animated makes sure we only get one @ a time
'left': indent
}, 'fast', function() {
tomove.appendTo(ul); //Move them to the end of the UL
ul.css({ // left indent of ul
'left': 0
});
});
} else {
// Infinite is turned off, handle it in here
count = count -1;
// Animate numElements - numSlide
}
}
누구든지 다른 아이디어를 가지고 :
이 설정 같은 것? 그것은 여기에 작동하는 데모이기 때문에 (어떤 <li>
의 이동이었다되기 전과) <li>
"마지막"에 대한 참조를 유지하는 것이 문제를 처리하고로 .index()
를 사용하는
http://jsfiddle.net/someprimetime/AYfhn/
고마워요! 이 코드는 jQuery 작성 플러그인 페이지를 읽었을 때 처음 시작한 때가 (오래된) 코드입니다. 나는 또한 index() 또는 eq()를 사용하여 현재 요소를 추적 할 생각을했습니다. 감사합니다! –