Мне очень нравится @phpslightly solution, я продолжаю его использовать. Так что здесь он обновляется до базовой формы плагина jquery, которая вернет ваш элемент
jQuery.fn.shake = function(interval,distance,times){
interval = typeof interval == "undefined" ? 100 : interval;
distance = typeof distance == "undefined" ? 10 : distance;
times = typeof times == "undefined" ? 3 : times;
var jTarget = $(this);
jTarget.css('position','relative');
for(var iter=0;iter<(times+1);iter++){
jTarget.animate({ left: ((iter%2==0 ? distance : distance*-1))}, interval);
}
return jTarget.animate({ left: 0},interval);
}
Затем вы бы использовали его как обычный плагин:
$("#your-element").shake(100,10,3);
Или используйте значения по умолчанию (100, 10, 3):
$("#your-element").shake();