Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

jQuery scroll show hidden content

How do I make it so that by default, 6 div elements are shown on the page, and when a user scrolls to the bottom of the page, six more are loaded?

If you see this example, it has multiple divs. I want only 6 of them to be show initially, and each time the user reaches the bottom of the page, I want six more to be loaded, until you 'run out' of divs.

So far I have tried experimenting with jQuery infinite scroll plugins, but they are not applicable in my case, as in fact the number of elements I have is very finite!

How can this be accomplished using jQuery? Thanks in advance!

EDIT

I believe one could set the rest of the divs to hidden (apart from the first 6), and trigger a function that loads six more when the bottom of the page is reached.

like image 699
jacktheripper Avatar asked May 15 '26 20:05

jacktheripper


2 Answers

I have created a very quick example, it's not optimised by does the job:

http://jsfiddle.net/gRzPF/2/

like image 143
trickyzter Avatar answered May 17 '26 10:05

trickyzter


You should be able to use something like the following:

jQuery( window ).scroll( function( ) {
    var loadHeight = jQuery( document ).height( ) - jQuery( window ).height( );
    if( haveDivsToLoad && jQuery( window ).scrollTop( ) >= loadHeight ) {
        // fire your load function here
    }
} );

You might need to play with loadHeight to make it work to your satisfaction.

EDIT: I added haveDivsToLoad to the check. You should make this a global (or closure) variable and set it to true or false depending on whether there are more divs to load.

like image 20
kitti Avatar answered May 17 '26 09:05

kitti



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!