Use your left/right keys to browse tutorials
jQuery page scrolling

jQuery page scrolling

1 Star2 Stars3 Stars4 Stars5 Stars
Posted on June 4, 2010

Over a year ago I wrote an article on scrolling a page using Prototype, just to update things here I’m going to run through scrolling a page using jQuery and the animate() function. Automated page scrolling is useful in many cases. A good example of this technique can be found in the personal project i worked on a few months back ‘We Deliver’ which you can find here. The page scroll in this project was particularly important as it’s a single page site in that all the content and animation happens within a single user experience.

The Code

It’s extremely easy to get started using jQuery scroll. First we need to declare the element that the vertical scrollbar uses as it’s reference so in other words we want to scroll the main html body window for example.

$('html, body').animate({

The next line is saying scroll to the element defined (in this case the element .bottom) we’re not defining an offset so it takes the top of the element.

scrollTop: $(".bottom").offset().top

The vertical scroll position is the same as the number of pixels that are hidden from view above the scrollable area. If the scroll bar is at the very top, or if the element is not scrollable, this number will be 0.


$("document").ready(function() {

				$('.top-title').click(function(){

					$('html, body').animate({
						scrollTop: $(".middle").offset().top
					}, 2000);

				 });

				$('.middle-title').click(function(){

					$('html, body').animate({
						scrollTop: $(".bottom").offset().top
					}, 2000);

				 });

					$('.bottom-title').click(function(){

					$('html, body').animate({
						scrollTop: $(".top").offset().top
					}, 2000);

				 });

});


Recent shares

More tutorials from Papermashup
Comments
16 discussions around jQuery page scrolling
  1. vb078 says:

    Now I found two solutions thks :)

  2. Sean says:

    This is one of the most user friendly jquery plug-ins I’ve ever come across. Simple to implement & easy to adjust.
    Thanks.

  3. clau says:

    Many thanks it works perfectly!!

  4. Andres says:

    Hey Vindikato:
    $(function() {
    $(‘.nav a’).bind(‘click’,function(event){
    var anchor = $(this).attr(‘href’);

    $(‘html, body’).stop().animate({
    scrollLeft: $(anchor).offset().left
    }, 500);
    event.preventDefault();
    });
    });

  5. Vindikato says:

    Very, very, very goooood stuff!

    I search a Horizontaly option… that is posible rigth here?
    Thanks :)

  6. Jonny says:

    I’m sorry to sound really amateur here but…
    How would I make the click function work with a <a href .. hyperlink …

    I see you've used Div classes and made them clickable.

    Help me out?

  7. Thanks a lot men! saludos de Mexicali, Mexico :)

  8. Isi says:

    How would you use this in a naviagation?

  9. Ben says:

    Thanks Ashley. Came in quite handy. Appreciate your help.

  10. Jonas says:

    Strange behavior in IOS4 / Ipad – any ideas?

  11. Vladimir Halinen says:

    Hi!

    This works otherwise nicely, but I’m experiencing weird flashes before it starts to scroll. The flashing happens when I click the link. Any ideas why this happens? Ohter than that, it works great. Thanks!

  12. This works great for a project I’m working on. It looked very smooth on FireFox and Safari.

  13. Pingback: Tweets that mention jQuery page scrolling | Papermashup.com -- Topsy.com

  14. CoryMathews says:

    Works great in chrome however In Opera it jumps to the top of the screen before beginning to scroll. Not sure why that is.

  15. Very nice! I can think of at least 3 areas where this functionality could be applied. Now, if only I can convince our fearless leaders to take something like this on…
    Thanks for posting!

  16. Pingback: Tweets that mention jQuery page scrolling | Papermashup.com -- Topsy.com

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>



Looking for a registry cleaner to speed up your PC and show a full diagnostics?

Never miss an update from Papermashup

Get notified about the latest tutorials and downloads.

Subscribe by Email

Get alerts directly into your inbox after each post and stay updated.
Subscribe
OR

Subscribe by RSS

Add our RSS to your feedreader to get regular updates from us.
Subscribe

Get in contact

Please use the form below to get in touch.

About Me

I'm Ashley Ford, Co-founder and Technical Director at Harkable.com London, UK. Previously I worked at InMobi, Spotify and MySpace. My interests include photography and making short videos I'm also an avid F1 fan. I'm always working on side projects. Here are a few: Easy Poll, We Deliver.



What do you specialise in?

I spend a lot of time coding in PHP and MySQL, as well as front end XHTML and CSS. I also specialise in javascript and the jQuery framework as well as being an avid designer. You can find me on dribbble

Interested in advertising?

If you'd like to advertise on Papermashup.com you can find details here Or use the contact link below for further advertising opportunities.

How do I contact you

You can contact me here. and I'm available for consultation, freelance, programming book reviews.

Get on the mailing list

Join over 3000 people who have subscribed to the Papermashup inbox message, and be the first to find out about tutorial, competitions and giveaways.