element-ui的tabs頁籤頁組件在使用vue-i18n切換語言後,按鈕寬度發生變化以後定位不許確解決方案

不知道有多少人和我遇到的同樣,
問題描述:this

當切換按鈕的語言後,因爲文字數量發生改版,按鈕寬度變化,被選中的按鈕下方的指示線定位不許確

image.png

image.png

我沒有搜索到解決方案,本身寫了一個,這裏分享一下,若是你有更好的方案,下方評論去,和你們分享一下。很是感謝。spa

resetTabActivePosition($el) {
    setTimeout(() => {
        var activeEl = $el.querySelector('.el-tabs__item.is-active');
        var lineEl = $el.querySelector('.el-tabs__active-bar');
        var style = getComputedStyle(activeEl);
        var pl = style.paddingLeft.match(/\d+/)[0] * 1;
        var pr = style.paddingRight.match(/\d+/)[0] * 1;
        var w = style.width.match(/\d+/)[0] * 1;
        lineEl.style.transform = 'translateX(' + (activeEl.offsetLeft + pl) + 'px)';
        lineEl.style.width = (w - pl - pr)+'px';
    }, 100)
}
    

watch: {
    currentLang(){
        resetTabActivePosition(this.$refs.tabs.$el)
    }
}

在組件中綁定ref3d

<el-tabs ref="tabs"></el-tabs>
相關文章
相關標籤/搜索