У вас переменной
timeoutID присваивается значение только второго интервала:
timeoutID = setInterval(function() { /* какая-то функция */}, 1000);
timeoutID = setInterval(function() { /* другая функция */ }, 1000); // перезаписывает значение
Когда вы потом скидываете его через
clearInterval(timeoutID), первый интервал продолжает выполнятся, из-за чего ширина "дрожит" туда-сюда (выполняются две функции "одновременно").