2011-01-25 7 views
3
$("body").scroll(function() { 
    $("#myDiv").load("test.html"); 
}); 

この構文では、ユーザーがスクロールするときにコンテンツをdivに読み込むことができます。しかしdivに挿入する前に、ユーザーがスクロールダウンするときにdivがビューポート領域にあることを確認したいと思います。jQueryを使用して無限スクロールを作成するには?

はいの場合は、外部コンテンツをdivに読み込みます。私の目標を達成するのを助けてください。

+0

上無限スクロールを作成する方法どのくらいのコンテンツを知っているスクロールされたピクセルの量を監視することができます知っている。おそらくそれはちょっとしたアイデアですが。 –

+3

スクロールイベントハンドラで重要な作業をするのは悪い考えです!どんなに悪い? twitterを膝に持っていくには十分です:) John Resigのブログ記事をチェックしてください - http://ejohn.org/blog/learning-from-twitter/ –

+0

[viewport plugin](http:// www .appelsiini.net/projects/viewport)。 – lonesomeday

答えて

2
$("body").scroll(function() { 
    if (document.elementFromPoint(x,y) == $("#whatever")) { 
     $("#myDiv").load("test.html"); 
    } 
    } 
+0

どうすればいいのか説明してください。(document.elementFromPoint(x、 y)== $( "#何でも")){ $( "#myDiv")。load( "test.html"); } document.elementFromPoint(x、y)はどのように動作しますか? – Thomas

+0

ブラウザウィンドウ/ iframeの左上隅を基準にして、これらの座標の下にある要素を返します。 https://developer.mozilla.org/en/DOM/document.elementFromPoint DIVの位置は、https://developer.mozilla.org/en/DOM/element.offsetTopなどを使用して見つけることができます。 – Incognito

0

あなたがID #footerとフッターのdivをしたとしましょう:

function element_in_scroll(elem) { 
var docViewTop = $(window).scrollTop(); var docViewBottom = docViewTop + $(window).height(); 

var elemTop = $(elem).offset().top; 
var elemBottom = elemTop + $(elem).height(); 

return ((elemBottom <= docViewBottom) && (elemTop >= docViewTop)); 
} 

$(document).scroll(function(e){ 
if (element_in_scroll("#footer")) { 
    //Here you must do what you need to achieve the infinite scroll effect... 
}; 
}); 

また、あなたはより多くの情報のチェックアウトをしたい場合は、このあなたの場合はjQueryのマニュアルhttp://dumpk.com/2013/06/02/how-to-create-infinite-scroll-with-ajax-on-jquery/

関連する問題