Tôi đã dành một chút thời gian để cố gắng tìm một chức năng tốt đẹp để bọc một giải pháp. Dù sao, kết thúc với điều này mà tôi cảm thấy là một giải pháp tốt hơn khi tải nhiều nội dung trên một trang hoặc trên một trang web.
Chức năng:
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;
}
}
Sau đó, bạn có thể gọi hàm bằng cách sử dụng cửa sổ khi cuộn (ví dụ: bạn cũng có thể liên kết nó với một nhấp chuột, v.v. như tôi cũng làm, do đó là hàm):
Để sử dụng:
$(window).scroll(function (event) {
ifViewLoadContent("#AjaxDivOne", "someFile/somecontent.html");
ifViewLoadContent("#AjaxDivTwo", "someFile/somemorecontent.html");
});
Cách tiếp cận này cũng sẽ hoạt động để cuộn div, v.v ... Tôi hy vọng nó có ích, trong câu hỏi trên, bạn có thể sử dụng phương pháp này để tải nội dung của mình trong các phần, có thể nối thêm và từ đó rê bóng cung cấp tất cả dữ liệu hình ảnh đó thay vì nguồn cấp dữ liệu hàng loạt.
Tôi đã sử dụng phương pháp này để giảm chi phí trên https://www.taxformcalculator.com . Nó đã bị lừa, nếu bạn nhìn vào trang web và kiểm tra yếu tố, v.v. bạn có thể thấy tác động đến tải trang trong Chrome (làm ví dụ).
new_element.hide().appendTo('.your_div').fadeIn(); $(window).scrollTop($(window).scrollTop()-1);
Dòng đầu tiên nối các phần tử theo cách hay, thứ hai đảm bảo rằng chức năng của bạn không bao giờ dừng ở cuối trang.