Вариант. Тут еще можно (нужно) вставить clearTimeout, когда размеры блока выйдут за заданные значения. Но думаю, доделаете уже под себя...
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>BlockSize Demo</title>
</head>
<body>
<div id="block"></div>
<style>
#block{
width: 100px;
height: 100px;
position: absolute;
top: 100px;
left: 100px;
background-color: #eee;
border: 2px solid #ccc;
cursor: pointer;
}
</style>
<script>
var block = document.getElementById('block'),
size = 100,
dx = -2;
block.addEventListener('click', function(e){
setTimeout(tick(), 1000);
dx *= -1;
});
function tick(){
setInterval(function(){
size += dx;
block.style.width = size + 'px';
block.style.height = size + 'px';
}, 200)
};
</script>
</body>
</html>