Commit 80410b44 authored by hetech's avatar hetech Committed by GitHub

Tabs: scroll to active tab (#12948)

* Tabs: fix not scrolling to active tab

* update tabs.vue
parent 7e29e1c6
......@@ -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;
......
......@@ -45,9 +45,11 @@
},
currentName(value) {
if (this.$refs.nav) {
this.$nextTick(_ => {
this.$nextTick(() => {
this.$refs.nav.$nextTick(_ => {
this.$refs.nav.scrollToActiveTab();
});
});
}
}
},
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment