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 > > > > > > > > > > > > > > > > >