BFC引起的loading動畫跳動BUG

BUG現象

當列表加載時,loading動畫在加載過程中出現跳動問題。

BUG原因

以下為列表結構:

<div class="ant-spin-nested-loading">
    <div class="ant-spin-container">
        <div style="height:90px">列表內容</div>
        <div style="float: right;height:30px">分頁工具條</div>
    </div>
</div>

當列表加載時,會給列表的內容加上一個遮罩層,同時加上loading動畫。

<div class="ant-spin-nested-loading">
    <div class="loading">我是loading動畫</div>
    <div class="ant-spin-container ant-spin-blur">
        <div style="height:90px">列表內容</div>
        <div style="float: right;height:30px">分頁工具條</div>
    </div>
</div>

遮罩層表現在代碼上就是會給.ant-spin-container內容加上一個.ant-spin-blur,在加載完畢后移除。
以下是 .ant-spin-blur簡化了兼容性之后的樣式

.ant-spin-blur{
    overflow: hidden;
    opacity: 0.7;
    filter: blur(0.5px);
    -webkit-transform: translateZ(0);
}

在沒加ant-spin-blur之前,ant-spin-nested-loading的高度是90px,因為float元素的高度計算并沒有列入其中。
在加上ant-spin-blur之后,ant-spin-nested-loading的高度為120px,因為overflow:hidden導致ant-spin-container所在的div形成了一個BFC,而在BFC中,浮動元素的高度會納入到總高度的計算中

而loading動畫所在的div是根據.ant-spin-nested-loading所在元素的高度動態(tài)計算位置,出現在中間高度,那么就會導致在移除ant-spin-blur時,總高度變小,導致loading動畫的位置發(fā)生改變。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容