我发现了这样一个代码,它使旧文本淡出,而新文本出现:https://codepen.io/cythilya/pen/EXxved

html:

<div id="app">
  <button @click="show = !show">Click Me!</button>
  <transition mode="out-in">
    <div class="block" v-if="show">Block 1</div>
    <p class="block" v-else>Block 
      2</p>
  </transition>
</div>

一百:

body { font-family: 微軟正黑體; }
button { margin-bottom: 10px; }

#app {
  padding: 10px;
}

.block {
  background: #999;
  color: #fff;
  display: table-cell;
  width: 100px;
  height: 100px;
  text-align: center;
  vertical-align: middle;
}

.v-leave { opacity: 1; }
.v-leave-active { transition: opacity 2s }
.v-leave-to { opacity: 0; }
.v-enter { opacity: 0; }
.v-enter-active  { transition: opacity 2s }
.v-enter-to { opacity: 1; }

js:

var vm = new Vue({
  el: '#app',
  data: {
    show: true
  }
});

然而,当我try 在Vue 3中使用它时,它会淡出旧文本,但不会淡入新文本-新文本突然出现:https://codesandbox.io/s/nameless-resonance-yjfl72?file=/src/App.vue

<template>
  <div id="app">
    <button @click="show = !show">Click Me!</button>
    <transition mode="out-in">
      <div class="block" v-if="show">Block 1</div>
      <p class="block" v-else>Block 2</p>
    </transition>
  </div>
</template>

<script>
import HelloWorldVue from "./components/HelloWorld.vue";
export default {
  name: "App",
  components: {
    HelloWorld: HelloWorldVue,
  },

  data() {
    return { show: true };
  },
};
</script>

<style>
body {
  font-family: 微軟正黑體;
}
button {
  margin-bottom: 10px;
}

#app {
  padding: 10px;
}

.block {
  background: #999;
  color: #fff;
  display: table-cell;
  width: 100px;
  height: 100px;
  text-align: center;
  vertical-align: middle;
}

.v-leave {
  opacity: 1;
}
.v-leave-active {
  transition: opacity 2s;
}
.v-leave-to {
  opacity: 0;
}
.v-enter {
  opacity: 0;
}
.v-enter-active {
  transition: opacity 2s;
}
.v-enter-to {
  opacity: 1;
}
</style>

为什么行为会发生变化?我该怎么修呢?

推荐答案

在Vue 3中,CSS类名被调整,.v-enter现在是.v-enter-from:

.v-enter-from {
  opacity: 0;
}

这是一张playround元的

Html相关问答推荐

html中背景色的全单元格R中的Rmarkdown表

每次在视口中运行动画

Angular Project中的星级 Select

如何最大限度地减少Cookie同意代码对性能的影响?

如何在伪元素背景中定位多个CSS径向梯度

创建带有弯曲边框的水平时间线

为什么不是所有字体好的图标都能与boostRapCDN一起使用呢?

如何创建带有粘性列和标题的网格?

如果DIV没有特定的sibling 姐妹,则以CSS为目标

如何生成随机字符串的字母数字字符集长度到html跨度?

Html视频标签:圆角像素化

如何制作带有粘性头和脚的可滚动车身

带有图像的虚线边框

白色栏超出页面100%的右侧

如何动态调整彼此重叠的两个 div 的大小,使它们在增长时保持相同的高度

标签背景 colored颜色 的 html 和 css 技巧说明

标题之间和之后的 Hr 线

我的卡片内容无法在 bootstrap 5 中正确居中

我正在创建一个 django 审查系统.我认为我的 HTML 是错误的

粘性定位的子元素忽略父母的填充