Tabs: scroll to active tab (#12948)

* Tabs: fix not scrolling to active tab

* update tabs.vue
pull/12950/head
hetech 2018-09-30 15:21:34 +08:00 committed by GitHub
parent 7e29e1c66d
commit 80410b4487
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 7 deletions

View File

@ -87,7 +87,7 @@
const navScroll = this.$refs.navScroll;
const activeTabBounding = activeTab.getBoundingClientRect();
const navScrollBounding = navScroll.getBoundingClientRect();
const navBounding = nav.getBoundingClientRect();
const maxOffset = nav.offsetWidth - navScrollBounding.width;
const currentOffset = this.navOffset;
let newOffset = currentOffset;
@ -97,10 +97,9 @@
if (activeTabBounding.right > navScrollBounding.right) {
newOffset = currentOffset + activeTabBounding.right - navScrollBounding.right;
}
if (navBounding.right < navScrollBounding.right) {
newOffset = nav.offsetWidth - navScrollBounding.width;
}
this.navOffset = Math.max(newOffset, 0);
newOffset = Math.max(newOffset, 0);
this.navOffset = Math.min(newOffset, maxOffset);
},
update() {
if (!this.$refs.nav) return;

View File

@ -45,8 +45,10 @@
},
currentName(value) {
if (this.$refs.nav) {
this.$nextTick(_ => {
this.$refs.nav.scrollToActiveTab();
this.$nextTick(() => {
this.$refs.nav.$nextTick(_ => {
this.$refs.nav.scrollToActiveTab();
});
});
}
}