この記事は年以上前に書かれたもので、内容が古かったり、セキュリティ上の問題等の理由でリンクが解除されている可能性があります。
IE6でも7でも動いてくれるのと
なかなか使い勝手も良さそう
なのでメモ。jQueryを使った
コンテンツボックス内の自動
読み込みを実装します。
去年くらいの記事ですけど見逃してたのでメモ。
Facebookをやられてる方はピンと来るかも。下までスクロールすると自動で次のコンテンツが読み込まれますが、それをボックス内で実装したものです。基本的にどのブラウザでも動くみたいです。
Scrolling Dynamic Content box

このボックス内でスクロールすると自動で次のコンテンツが読み込まれ、アイテムの数も表示されます。というか、見たほうが早いですね。
デモ
ここにテキスト1
ここにテキスト2
ここにテキスト3
ここにテキスト4
ここにテキスト5
ここにテキスト6
ここにテキスト7
ここにテキスト8
コード
コードです。
$('document').ready(function(){
updatestatus();
scrollalert();
});
function updatestatus(){
//ロードしたアイテムの数を表示
var totalItems=$('#content p').length;
$('#status').text('現在、 '+totalItems+' 個を表示しています。');
}
function scrollalert(){
var scrolltop=$('#scrollbox').attr('scrollTop');
var scrollheight=$('#scrollbox').attr('scrollHeight');
var windowheight=$('#scrollbox').attr('clientHeight');
var scrolloffset=20;
if(scrolltop>=(scrollheight-(windowheight+scrolloffset)))
{
//新しいアイテムのロード
$('#status').text('続きを読み込んでいます・・');
$.get('読み込むファイルのパス', '', function(newitems){
$('#content').append(newitems);
updatestatus();
});
}
setTimeout('scrollalert();', 1500);
}
動作にはjQueryが必要です。テキストは適当に変更してください。
HTML
<div id="mainbody" > <div id="scrollcontainer"> <div id="scrollbox" > <div id="content" > <p>ここにテキスト1</p> <p>ここにテキスト2</p> <p>ここにテキスト3</p> <p>ここにテキスト4</p> <p>ここにテキスト5</p> <p>ここにテキスト6</p> <p>ここにテキスト7</p> <p>ここにテキスト8</p> </div> </div> <p><span id="status" ></span></p> </div>
$.getで指定したファイルがスクロールする事で読み込まれます。数値はvar totalItems=$(‘#content p’).length;で指定しているのでリストで表示したいならpをliなどに変更すればいいっぽい。
ブログのサイドバーにcssが影響してますが気にしないで下さい。
デモではhtmlを読み込んでいるので同じ内容が繰り返されていますが、用途は動的なコンテンツになりそうですね。検索ページとかアーカイブにもいいかも。
[note]【追記】
お友達のヤクモさんが改良してくれましたよ。処理スピードも速いです。ぜひご覧下さい。
ボックス内をスクロールすると自動でコンテンツをロードするjQueryをちょっと変えてみた[/note]
