8

Im trying to make a simple expo tween, it works, but its a bit jittery and FF seems to hang a bit. What can I do to improve it?

var distance = (target - x) * dir;

x += (distance / 5) * dir;

if (dir == 1 && x >= target-1) {
    return;
    }

if (dir == -1 && x <= target+1) {
     return;
    }
davivid
  • 5,910
  • 11
  • 42
  • 71

3 Answers3

2

You'll probably find your answer and more looking at the source of tween.js

All tween curves visualized: http://sole.github.com/tween.js/examples/03_graphs.html

antonj
  • 21,236
  • 6
  • 30
  • 20
0

Javascript arithmetic is fast enough for all browsers. Try reducing the amount of DOM nodes you update per iteration.

artificialidiot
  • 5,309
  • 29
  • 27
  • only dom element is a canvas, admittedly its got a lot of pixel pushing to do... but it does work ok - until I add the above – davivid Sep 29 '10 at 21:31
0

I'm not quite sure what you're looking for, but this maybe?

x += (target - x)*dir*dir/5;

if (Math.abs(dir) == 1 && dir*(x-target) <= 1)
    return;
jairajs89
  • 4,495
  • 3
  • 18
  • 14