$.easing.crazy = function(t, millisecondsSince, startValue, endValue, totalDuration) {
    if(t<0.5) {
        return t*4;
    } else {
        return -2*t + 3;  

$('#a').animate({left: '130px', width: '40px', height: '40px'}, 2000, 'crazy');

It is not hard to make your own easing functions for jQuery animations (which the jQuery Easing Plugin provides many useful ones). You just have to add your function to the jQuery.easing object.

Your function receives five arguments and then it returns a number with 0 being the start and 1 being the end. You can go below or above this range if you want a bounce type effect.

The tricky part is figuring out what the function arguments are because they always have cryptic names; but they are straight forward once you know.

  1. t - the percentage of how much time has passed in the animation: 0 is the start of the animation and 1 is the end of the animation. For example, t = 0.66 would be 2/3rds of the way through the animation. This will be the one argument you really care about.
  2. millisecondsSince - The number of milliseconds since the start of the animation.
  3. startValue - This is hard-coded to 0
  4. endValue - This is hard-coded to 1
  5. totalDuration - The total number of millisconds that the animation will run for.

You can see an example of a custom easing function here that over-shoots and comes back.