add scroll into view implementation

pull/5915/merge
wacky6.AriesMBP 2017-07-12 00:58:01 +08:00 committed by 杨奕
parent d8d89c4df0
commit 8b5d208675
1 changed files with 21 additions and 0 deletions

View File

@ -0,0 +1,21 @@
import Vue from 'vue';
export default function scrollIntoView(container, selected) {
if (Vue.prototype.$isServer) return;
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;
}
}