ans-ui
Version:
A vue-based UI components library for analysys
18 lines (15 loc) • 485 B
JavaScript
export default function scrollIntoView (container, selected) {
if (!selected) {
container.scrollTop = 0
return
}
const top = selected.offsetTop
const bottom = selected.offsetTop + selected.offsetHeight
const viewRectTop = container.scrollTop
const viewRectBottom = viewRectTop + container.clientHeight
if (top < viewRectTop) {
container.scrollTop = top
} else if (bottom > viewRectBottom) {
container.scrollTop = bottom - container.clientHeight
}
}