Как добиться плавности прокрутки?
Используйте input вместо change.
Откровенно говоря, ваш код негодный. Захочется что-то поменять, придется лезть в код и заново разбираться в этой мешанине.
Вжух и получаем более чистый и понятный: https://jsfiddle.net/profesor08/1rvsjoer/
Можно менять свойства CSS, но лезть в JS не придется.