In most modern browsers (Chrome and Firefox, but not Safari, UC, or IE) you can pass options in an object to .scrollIntoView()
.
Try this:
elm.scrollIntoView({ behavior: 'smooth', block: 'center' })
Other values are behavior: 'instant'
or block: 'start'
or block: 'end'
. See https://developer.mozilla.org/en/docs/Web/API/Element/scrollIntoView