С холстом вы захотите использовать ту же технику, что и в этом посте, за исключением использования нескольких кадров и стирания / рисования прямоугольника в каждом кадре. Псевдокод:
setTimeout(1000/30, function () {
canvas.erase()
rect.update_position()
canvas.drawRect(rect)
})
В качестве альтернативы, вы можете использовать физический движок, такой как Box2dWeb, чтобы делать разные вещи, такие как «стряхивание» - http://code.google.com/p/box2dweb/