вот тот же код на jquery, без использования ее возможностей в плане анимации
<html>
<head>
<title>test</title>
<style type="text/css">
.block {
width: 800px;
height: 300px;
background: red;
}
</style>
</head>
<body>
<button onclick="hide()">Скрыть</button>
<div id="t" class="block"></div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
<script type="text/javascript">
function hide() {
var count = 10, i = count, width = $('#t').width(), height = $('#t').height();
(function() {
if (i--) {
$('#t').css({
'width': Math.round(width * i / count) + 'px',
'height': Math.round(height * i / count) + 'px',
'opacity': i / count
});
setTimeout(arguments.callee, 20);
}
})();
}
</script>
</body>
</html>
в данном конкретном случае изменения, может быть, небольшие. Но деталей реализации меньше. Следовательно проще понять, что эта функция делает. Если по какой-либо причине вам нужно в первую очередь видеть не
что делает код, а
как он это делает, это не значит, что так должно быть всегда и везде. Оба подхода имеют право на жизнь. Да, пряча реализацию, мы можем усложнить себе отладку в дальнейшем. Но это всего лишь возможность, у нее есть свои достоинства и недостатки. Где-то это уместно, где-то - нет, для кого-то подходит, для кого-то - нет. Да и просто, не прятать реализацию - значит не использовать функции. И люди делают это в разной степени, кто-то больше, кто-то - меньше
в общем, я к тому, что там 200КБ несжатого кода и куча недоплагинов, но ими можно пользоваться.
И это опять же одна из возможностей, со своими достоинствами и недостатками