views:

65

answers:

1

I'm certain I've seen this before. This is how i remember it

$cnta.css({ top:'+=50' });

Needless to say, it doesn't work :-)

I know i can parse the css value, manipulate the result and put it back into css, but that takes twice the code.


Thanks for answers!

+5  A: 

That works for .animate():

$cnta.animate({ top:'+=50' }, 0);

For .css(), you can pass a function that will do the addition for you:

$cnta.css('top', function(i,current) { return parseInt(current) + 50; });

$cnta.css('top', function(i,current) { return (parseInt(current) + 50 || 50); });​

EDIT: Changed the animation from 1 to 0. As @Nick Craver noted, a 0 animation will work.

EDIT: Gave a better answer for the .css() version. If the top has not been given any value yet, then doing .parseInt(current) will return NaN. Updated to correct it.

patrick dw
+1 - You can pass a `0` to animate as well, which eliminates a lot of overhead associated with a 1ms animation ;)
Nick Craver
Thanks @Nick. Wasn't sure if `0` would work. :o)
patrick dw
Thanks, perfect reply :-)
Codemonkey
@Codemonkey - You're welcome. :o)
patrick dw