Pure JavaScript でスムーススクロール

aipo.message.scrollTo = function(element, to, duration) {
      if (duration < 0) return;
      var difference = to - element.scrollTop;
      var perTick = difference / duration * 10;

      setTimeout(function() {
        element.scrollTop = element.scrollTop + perTick;
        if (element.scrollTop == to) return;
        aipo.message.scrollTo(element, to, duration - 10);
      }, 10);
}

使い方

aipo.message.scrollTo(<<スクロール要素>>, <<移動するスクロール位置>>, <<時間>>);