Лучше вынести getElementById за пределы функции перемещения, и не искать элемент каждый раз заново.
setInterval(..., 20) - не очень круто, т.к. при 60 фпс таймер должен быть около 16 мс, точнее 1000/60=16,66666666666(6), но такую точность невозможно установить. Да и не особо помогло бы, т.к. setInterval ограничевает только нижнюю границу времени, т.е. обещает что следующее выполнение будет НЕ РАНЬШЕ чем указанное время. В итоге анимация дерганная, особенно если браузер наружен другими задачами. Но красивый выход есть. Специально для анимации существует requestAnimationFrame, который вызовется как-раз к следующей отрисовке кадра.