I’ve seen many examples for animating the background-position of elements to produce nice looking scrolling backgrounds.
These examples tend to also script in reset counters to put the background-position in its original location after a certain amount of pixels.
My question is: Is it feasible to never reset the background-position for a tiled background? This would naturally produce very large background-position values over time, but if there is no significant difference in browser performance, it might be ok. I’ve tested IE, Firefox, and Chrome over an 8 hour period, and there didn’t appear to be any negative impact, although my boxes are relatively fast.
To answer the “why not reset?” question, it just comes down to simplicity. I am animating many background elements, each with different X/Y ratios, so not having to calculate when exactly it would be pixel perfect timing to switch back would make my life easier.
Anyone have thoughts on this?
Yes, that could eventually become a problem if your code is like
When n reaches a high number (typically 1000000000000000000000), its
toStringwill switch to exponential representation, which would end up trying to set:which is an obvious error. It’s possible some layout engines might bail out earlier, perhaps at 1<<31 pixels. But even so, if you were animating something by (say) 32 pixels 60 times a second, it would still take twelve days to reach that stage.
Typically you’d use the modulo operator
%separately on each counter rather than resetting the whole thing.Or, for time-based animations: