用vue实现css动画


<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <script src="./vue.js"></script>
    <style>
      .box {
        width: 100px;
        height: 100px;
        background-color: red;
      }
      .show-enter-active {
        animation: ani-show 5s;
      }
      .show-leave-active {
        animation: ani-hide 5s;
      }

      @keyframes ani-show {
        0% {
          opacity: 0;
        }
        100% {
          opacity: 1;
        }
      }
      @keyframes ani-hide {
        0% {
          opacity: 1;
        }
        100% {
          opacity: 0;
        }
      }

      .enter,
      .leave-to {
        opacity: 0;
      }
      .enter-active,
      .leave-active {
        transition: all 3s linear;
      }
      .enter-to,
      .leave {
        opacity: 1;
      }
    </style>
  </head>
  <body>
    <div id="app">
      <input type="checkbox" v-model="show" /> 显示/隐藏
      <hr />
      <transition name="show">
        <div class="box" v-show="show"></div>
      </transition>
      <br />
      <br />
      <br />

      <transition
        name="custom"
        enter-class="enter"
        enter-active-class="enter-active"
        enter-to-class="enter-to"
        leave-class="leave"
        leave-active-class="leave-active"
        leave-to-class="leave-to"
      >
        <div class="box" v-show="show"></div>
      </transition>
    </div>
    <script>
      // vue 动画
      // 通过 css 动画实现元素的显示和隐藏
      let vm = new Vue({
        el: "#app",
        data: {
          show: true,
        },
      });
    </script>
  </body>
</html>
 
效果如下:
 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM