Bir çözümü sarmak için güzel bir işlev bulmaya biraz zaman harcadım. Her neyse, bunu tek bir sayfaya veya bir siteye birden fazla içerik yüklerken daha iyi bir çözüm olduğunu düşünüyorum.
İşlev:
function ifViewLoadContent(elem, LoadContent)
{
var top_of_element = $(elem).offset().top;
var bottom_of_element = $(elem).offset().top + $(elem).outerHeight();
var bottom_of_screen = $(window).scrollTop() + window.innerHeight;
var top_of_screen = $(window).scrollTop();
if((bottom_of_screen > top_of_element) && (top_of_screen < bottom_of_element)){
if(!$(elem).hasClass("ImLoaded")) {
$(elem).load(LoadContent).addClass("ImLoaded");
}
}
else {
return false;
}
}
Daha sonra kaydırma penceresini kullanarak işlevi çağırabilirsiniz (örneğin, ben de yaptığım gibi bir tıklama vb.
Kullanmak:
$(window).scroll(function (event) {
ifViewLoadContent("#AjaxDivOne", "someFile/somecontent.html");
ifViewLoadContent("#AjaxDivTwo", "someFile/somemorecontent.html");
});
Bu yaklaşım divları vb. Kaydırmak için de çalışmalıdır. Umarım yukarıdaki soruda bu yaklaşımı içeriğinizi bölümlere yüklemek için kullanabilirsiniz, belki toplu besleme yerine tüm bu görüntü verilerini ekleyebilir ve böylece damlatabilirsiniz.
Bu yaklaşımı yükü azaltmak için kullandım. https://www.taxformcalculator.com adresindeki . Siteye bakar ve öğeyi vb. İncelerseniz hile öldü (örneğin, Chrome'daki sayfa yükü üzerindeki etkisini görebilirsiniz).
new_element.hide().appendTo('.your_div').fadeIn(); $(window).scrollTop($(window).scrollTop()-1);
İlk satır öğeleri güzel bir şekilde ekler, ikincisi işlevinizin sayfanın altında asla durmamasını sağlar.