Похоже, что последняя строка устанавливает свойства css высоты и ширины на 30%.Вы ожидаете, что он будет 30% от предыдущих размеров, но на самом деле это 30% от ближайшего родительского размера блока, который кажется больше, чем предыдущий размер.
Я не думаю, что естьпростой способ изменить размер до заданного процента от предыдущего размера (например, специальный синтаксис в animate или около того).Я предполагаю, что вы должны кодировать функцию javascript, которая вычисляет новую ширину из старой.
Учитывая, что вы хотите изменить размер только одного элемента, я настоятельно рекомендую вам использовать идентификатор элемента вместо его класса.Тогда следующая строка должна делать то, что вы хотите:
$("#block").animate({"left": "-=100px", "height": $("#block").height()*0.5, "width":$("#block").width()*0.5 }, 1000);