【发布时间】:2021-02-03 18:31:04
【问题描述】:
我有 vue 项目。
每次页面上的某些元素因为 v-if 而消失时,页面的其余部分都会稍微重新排列。我希望它顺利进行。
所有元素都有:key属性。
示例: 我在一行中居中了 2 个盒子。当一个消失时,第二个仍然居中,因此改变位置。 image
如何处理?
编辑 1 我试过了:
<div>
<CompoentA :key=345 class="one-line" v-show="showComponentA" />
<transition name="moving">
<CompoentB class="one-line" :key=123 />
</transition>
</div>
.one-line { display: inline-table; }
.moving-move { transition: transform 1s; }
【问题讨论】:
-
正如 devdgehog 提到的,
v-if正在删除这些项目。您应该考虑绑定类名,然后使用 CSS 转换为它们设置动画,绑定样式,或者考虑使用类似 masonry 的东西。 vuejs.org/v2/guide/class-and-style.html#Binding-Inline-Styles -
@Djave 你能再描述一下吗?我只是在学习 css,不知道如何使用您的建议。
标签: css vue.js animation css-animations css-transitions