UlanB made a great answer. It's actually a pleasure to work with the specific javascript example he posted. Ajax and jquery works great for this stuff. I really wish you would have asked this in about 1 month from now though, because I'm working on a library made just for this. With a lot of control that is. So animations aren't predefined, just supported with ease of use.
To remain on topic: I recommend doing these things for yourself. It may sound like a pain at first. But writing my library has been quite a learning experience. Especially note that things "aren't always as they seem"+"sometimes it's just that simple" in general when it comes to this stuff what ever works, works.
You can create ease by simply animating something over time with a speed that increases or decreases over time. To make it "bounce" or something, have it quickly move downward and when it hits where you want it to bounce at, stretch it sideways maybe 5-10% and downwards up to 60% over that time as well. And on the returning to normal time, you could either have the same thing happen in reverse, or the method I use which is to reverse the frames of that specific menu objects animation structure.
EDIT: In general though, it's still animation. Animation happens over time, and is straight forward. You can use pathing, and have time constant, slowing or speeding up at a given rate. You can also use key frames and predetermine the methods for animation.