As Photo-Worx's link shows, something like this can be achieved quite simply. But if you wanted a more elaborate animation, one way to achieve that is to store the servo positions for small movement steps as data.
For example, you can store a minutes worth of action for three servos as 180 bytes of data using steps of one second (you can double this for finer steps, or reduce the size if your animation duration is shorter)
Anyway, the idea is that you store the desired servo positions for each time step in a data array and read them back to drive the servos. You can store up to a thousand steps in EEPROM on a standard Arduino board.