Каждый раз, когда вызывается эта функция, вы устанавливаете переменную i
обратно в ноль:
var i = 0;
... затем добавление одного.
i++;
Так что всегда будет «1». Вам нужно хранить это значение где-то еще, ИЛИ анализировать его каждый раз из атрибута css, а затем добавлять его. Вот первое решение в качестве примера:
var rotate_degrees = 0;
setInterval(function()
{
rotate_degrees++;
$('#nav').css({'-webkit-transform' : 'rotate(' + rotate_degrees + 'deg)'});
console.log(rotate_degrees);
}
, 1000);
Разница заключается в объявлении varialbe за пределами области действия функции, а не внутри.