[jQuery] Re: animate() canceling

2007-09-03 Thread Micox

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

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

Or like a extension:

$.extend({
stopAllAnims: function(){ for(var j=0;j50;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



[jQuery] Re: animate() canceling

2007-09-02 Thread emi polak
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
   
   
  
  
 



[jQuery] Re: animate() canceling

2007-09-01 Thread emi polak
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




[jQuery] Re: animate() canceling

2007-09-01 Thread Erik Beeson

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
 
 




[jQuery] Re: animate() canceling

2007-09-01 Thread Erik Beeson
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