diff --git a/packages/tab/index.js b/packages/tab/index.js index 3483f190..ed1559ca 100644 --- a/packages/tab/index.js +++ b/packages/tab/index.js @@ -24,10 +24,29 @@ Component({ } }, + data: { + scrollLeft: 0 + }, + methods: { + _handleScroll(selectedId) { + const query = wx.createSelectorQuery().in(this); + query.select(`#item-${selectedId}`).boundingClientRect(); + query.select('#scroll-view').boundingClientRect(); + query.select('#scroll-view').scrollOffset(); + query.exec(res => { + this.setData({ + scrollLeft: res[2].scrollLeft + res[0].left + res[0].width / 2 - res[1].width / 2 + }); + }); + }, _handleZanTabChange(e) { const selectedId = e.currentTarget.dataset.itemId; + if (this.data.scroll) { + this._handleScroll(selectedId); + } + this.setData({ selectedId }); diff --git a/packages/tab/index.wxml b/packages/tab/index.wxml index 1a52111e..340ef609 100644 --- a/packages/tab/index.wxml +++ b/packages/tab/index.wxml @@ -4,8 +4,11 @@ >