無限にのびるページのつくりかた
こうする。window.scroll イベントの中で直接やるやつは死ねばいいって jresig がいってたので、そうしてません。まだ死にたくないから。
FrePAN に導入してあるんだけど、もっといいやりかたあったらおしえてください。
var page = 1;
var didScroll = false;
var in_request = false;
var finished = false;
$(window).scroll(function () {
didScroll = true;
});
setInterval(function () {
if (didScroll) {
var remain = $(document).height() - $(document).scrollTop() - $(window).height()
if (remain < 500 && in_request==false && !finished) {
in_request = true;
$.ajax({
type: 'get',
cache: false,
data: { page: ++page },
url: location.href,
success: function (html) {
in_request = false;
var elements = $('.modules li', html);
if (elements.length == 0) {
finished = true;
}
$('.modules').append( elements );
$('html,body').animate({scrollTop: $(window).scrollTop() + 10 + 'px'}, 800, function () { in_request=false; });
},
error: function () { /* nop */ }
});
}
didScroll = false;
}
}, 250);
Published: 2011-02-06(Sun) 01:41