Estou apenas querendo saber como posso implementar mais dados na rolagem apenas se o div.loading estiver visível.
Geralmente, procuramos a altura da página e a altura da rolagem, para ver se precisamos carregar mais dados. mas o exemplo a seguir é um pouco complicado, então isso.
A imagem a seguir é um exemplo perfeito. existem duas divs de carregamento na caixa suspensa. Quando o usuário rola o conteúdo, o que estiver visível, deve começar a carregar mais dados.
Então, como posso descobrir se .loading div ainda está visível para o usuário ou não? Para que eu possa começar a carregar dados apenas para essa div.
fonte
new_element.hide().appendTo('.your_div').fadeIn(); $(window).scrollTop($(window).scrollTop()-1);
primeira linha acrescenta elementos de maneira agradável, a segunda garante que sua função nunca pare na parte inferior da página.var end = $("#BottomThing").offset().top; var viewEnd = $(window).scrollTop() + $(window).height(); var distance = end - viewEnd; if (distance < 300) // do load
Você já ouviu falar sobre o plugin jQuery Waypoint .
Abaixo está a maneira simples de chamar um plug-in de waypoints e fazer com que a página carregue mais conteúdo quando você chegar ao final da rolagem:
fonte
Aqui está um exemplo:
fonte
A resposta aceita para esta pergunta tem algum problema com o chrome quando a janela é ampliada para um valor> 100%. Aqui está o código recomendado pelos desenvolvedores do Chrome como parte de um bug que eu criei no mesmo.
Para referência:
Pergunta SO relacionada
Bug do Chrome
fonte
Se nem todos os seus documentos rolarem, digamos, quando você tiver uma rolagem
div
no documento, as soluções acima não funcionarão sem adaptações. Veja como verificar se a barra de rolagem do div atingiu o fundo:fonte
Passei algum tempo tentando encontrar uma boa função para embrulhar uma solução. Enfim, acabei com isso que considero uma solução melhor ao carregar vários conteúdos em uma única página ou em um site.
Função:
Você pode chamar a função usando window on scroll (por exemplo, você também pode vinculá-la a um clique etc., como eu também faço, daí a função):
Usar:
Essa abordagem também deve funcionar para rolar divs etc. Espero que ajude, na pergunta acima você pode usar essa abordagem para carregar seu conteúdo em seções, talvez acrescentar e assim driblar alimentar todos os dados de imagem em vez de alimentar em massa.
Usei essa abordagem para reduzir a sobrecarga em https://www.taxformcalculator.com . O truque acabou, se você olhar o site e inspecionar o elemento etc., poderá ver o impacto no carregamento da página no Chrome (como exemplo).
fonte
Melhorando na resposta @deepakssn. É possível que você queira que os dados sejam carregados um pouco antes de realmente rolarmos para o final .
[var scrollLoad] é usado para bloquear a chamada até que um novo dado seja anexado.
Espero que isto ajude.
fonte
Sua pergunta específica é sobre o carregamento de dados quando uma div é exibida , e não quando o usuário chega ao final da página.
Aqui está a melhor resposta para sua pergunta: https://stackoverflow.com/a/33979503/3024226
fonte