I think that we can stop all animations stopping all setIntervals
(with clearInterval).

function stopAllAnims(){
        for(var j=0;j<50;j++){clearInterval(j)}
}

Or like a extension:

$.extend({
    stopAllAnims: function(){ for(var j=0;j<50;j++)
{ clearInterval(j); }    }
});

On Sep 2, 10:08 am, "emi polak" <[EMAIL PROTECTED]> wrote:
> Hey Eric, that works like a charm. Thank you so much!
>
> Emi Polak
>
> On 9/2/07, Erik Beeson <[EMAIL PROTECTED]> wrote:
>
>
>
> > In fact, if you find yourself wanting to do a lot of stuff when scrolling
> > has stopped, you could add an event for it (again, untested):
>
> > (function($) {
> >    var scrollTimeoutID;
> >    $(window).bind('scroll', function() {
> >       clearTimeout(scrollTimeoutID);
> >       scrollTimeoutID = setTimeout(function() {
> >          $(window).trigger('scrollstop');
> >       }, 300);
> >    });
> > })(jQuery);
>
> > $(document).ready(function() {
> >    var topOffset = 100;
> >    $("#label").css('top', topOffset + "px");
>
> >    $(window).bind('scrollstop', function() {
> >       $("#label").animate({top: $(document).scrollTop() + topOffset},
> > "slow", "easein");
> >    });
> > });
>
> > Hope it helps.
>
> > --Erik
>
> > On 9/1/07, Erik Beeson < [EMAIL PROTECTED]> wrote:
> > > Approaching the problem a different way, how about only firing the
> > > animation if scrolling has paused for a moment? Maybe something like
> > > (untested):
>
> > > $(document).ready(function() {
> > >   var scrollTimeoutID;
> > >   var topOffset = 100;
> > >   $("#label").css('top', topOffset + "px");
>
> > >   $(window).bind('scroll', function() {
> > >     clearTimeout(scrollTimeoutID);
>
> > >     scrollTimeoutID = setTimeout(function() {
> > >       $("#label").animate({top: $(document).scrollTop() + topOffset},
> > > "slow", "easein");
> > >     }, 300);
> > >   });
> > > });
>
> > > You should probably play around with that 300 to find the optimum
> > > setting for you.
>
> > > Hope it helps.
>
> > > --Erik
>
> > > On 9/1/07, emi polak <[EMAIL PROTECTED]> wrote:
> > > > no luck heh? :(
>
> > > > On 9/1/07, emi polak < [EMAIL PROTECTED]> wrote:
> > > > > Hi,
> > > > > I am altering the "top" property of a floating label in a webpage.
> > The
> > > > "top" adjustement is fired at page scroll, so that the label would
> > always
> > > > stay in its place.
> > > > > Now I would like to animate the label between its oldPosition and
> > > > newPosition. So I use animate() to set the "top" property, but the
> > method
> > > > starts many times during the page scroll, thus creating a very buggy
> > and
> > > > slow motion.
>
> > > > > So: is there a way to cancel an already started animation, so that
> > when
> > > > "scroll", the animation is first canceled and then its fired again?
>
> > > > > Here is what I'm using now:
>
> > > > >     var topOffset = 100;
> > > > >     $("#label").css('top', topOffset + "px");
>
> > > > >     $(window).bind("scroll", function() {
> > > > >         var newScrollTop = $(document).scrollTop();
> > > > >         var newPos = newScrollTop + topOffset;
>
> > > > >         $("#label").animate({
> > > > >               top: newPos
> > > > >             }, "slow", "easein");
> > > > >     });
>
> > > > > Thank you!
> > > > > emipolak

Reply via email to