1

現在、私は Vue.js で作業しており、アニメーション化したいナビゲーション メニューがあります。私が探しているのはli、ユーザーがナビゲーション ボタンの 1 つにカーソルを合わせたときに 2 つの要素を表示することです。現在私がやっていることはshowActivities、デフォルトでのデータ型を false に設定し、それをtrue onmouseenterfalse onに設定することですmouseleave。したがって、ホバー時にアイテムが表示されたり消えたりしますが、アニメーション化されていません。これをどのようにアニメーション化できますか?

<ul class="navs">
      <li>Schedule</li>
      <li @mouseenter="showActivities = true" @mouseleave="showActivities = false">Team Activity</li>
      <li v-show="showActivities">tik tak tow</li>
      <li v-show="showActivities">Bejewel</li>
      <li>Resources</li>
      <li class="logout"><a href="https://google.com" target="_blank">Logout</a></li>
    </ul>

<script>
export default {
  name: 'SideMenu',
  data() {
    return {
      showActivities: false,
    };
  },
};
</script>
4

1 に答える 1

2

私が正しいとしたら、ゆっくりとしたフェードインとフェードアウトのようなタイプのアニメーションが必要です。vuejs トランジションでは、状態は必要に応じて呼び出して変更できる CSS クラスに関連付けられます。ドキュメントはそれについてより明確です Vuejs Transitions

たとえば、これを css セクションに追加すると、トランジションはゆっくりとしたフェード インとフェード アウトになります。

    .fade-enter-active, .fade-leave-active {
  transition: opacity .5s;
}
.fade-enter, .fade-leave-to /* .fade-leave-active below version 2.1.8 */ {
  opacity: 0;
}
于 2021-05-08T19:16:16.517 に答える