jQuery - Auto Scrolling the Slider

Question from Yuhsin:

I would like to make the jquery steps slider to do auto-increment when the window loads. Is there an easy way to trigger the slide to move by itself ?

I’m assuming this question is looking for the content to auto scroll as well.  So, let’s pull up the code from last week and take a look at this issue.

There is a timer plugin available for jQuery that will do some of the work for you, but all we really need for this functionality is:

  • A function to do the auto incrementing
  • A call to the javascript setTimeout() function.

So first, the auto incrementing function.

function scrollWindow() {

var slideValue;
slideValue = $("#slider").slider("value");
if(slideValue > -100)
{
$("#slider").slider("value", slideValue - 1);
setTimeout(scrollWindow, 1000);
}
}

A couple things to note about this function:

  • We are retrieving the current position of the slider using the .slider() method of the slider widget.
  • We are assuming that the range of our slider is between 0 and -100.
  • We call setTimeout at the end to call this function again in a second.
  • We only call setTimeout if we have not reached the end of our scrolling.

The only thing left is that we need to kick this off when the page loads.  To do this we add a call to setTimeout in our jQuery ready method:

$(function() {
$("#slider").slider(
{ change: handleChange,
slide: handleSlide,
min: -100,
max: 0
});
setTimeout(scrollWindow, 1000);
});

The actually scrolling of the window happens “automatically” with the code we wrote last week.

 

References
0

Dave Bush has been programming for 20 years. He currently blogs about .NET at http://blog.dmbcllc.com and provides .NET coaching to small and medium sized companies. Dave is a DZone MVB and is not an employee of DZone and has posted 20 posts at DZone.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)