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