ホームページ  >  記事  >  ウェブフロントエンド  >  vue のトランジションを使用してスライドトランジションを完了する方法

vue のトランジションを使用してスライドトランジションを完了する方法

不言
不言オリジナル
2018-06-26 09:38:162788ブラウズ

この記事ではvueのトランジションを使ってスライドトランジションを完成させるためのサンプルコードを中心に紹介していますが、編集者がかなり良いと思ったので、参考として共有させていただきます。エディターをフォローして見てみましょう

ちょっとしたアニメーション効果を作るのにvueを使うととても便利です。今日はvueのトランジションを使ってスライドトランジション効果を完成させたいと思います。

ソースコードに直接アクセスしてください:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Vue滑动效果</title>
  <style>
    .d {
      position: absolute;
      border: 1px solid red;
      width: 30px;
      height: 30px;
    }
    @keyframes show {
      0% {
        opacity: 0;
        left: 32px;
      }
      100% {
        opacity: 1;
        left: 0;
      }
    }
    @keyframes hide {
      0% {
        opacity: 1;
        left: 0;
      }
      100% {
        opacity: 0;
        left: -32px;
      }
    }
    .show-enter-active {
      animation: show 1.2s;
    }
    .show-leave-active {
      animation: hide 1.2s;
    }
    .show-enter, .show-leave-to {
      opacity: 0;
    }
    .wrap {
      position: relative;
      width: 32px;
      height: 32px;
    }
  </style>
  <script src="https://cdn.bootcss.com/vue/2.4.2/vue.min.js"></script>
</head>
<body>
<p id="app">
  <p>{{ message }}</p>
  <p class="wrap">
    <transition name="show">
      <p class="d" v-for="item in list" :key="item.id" v-if="count === item.id">
        {{ item.text }}
      </p>
    </transition>
  </p>
  <button @click="add">add</button>
</p>

<script>
  new Vue({
    el: &#39;#app&#39;,
    data () {
      return {
        message: &#39;Hello Vue.js!&#39;,
        count: 0,
        list: [
          {id: 0, text: &#39;aaa&#39;},
          {id: 1, text: &#39;bbb&#39;},
          {id: 2, text: &#39;ccc&#39;}
        ]
      }
    },
    methods: {
      add: function () {
        if (this.count < this.list.length - 1) {
          this.count += 1;
        } else {
          this.count = 0;
        }
      }
    }
  })
</script>
</body>
</html>

ここで注意する必要があるのは、親は相対を使用し、子は位置決めに絶対を使用し、位置の制御には左の値を使用することです。ここでtransformを使うと、前のpが徐々に消滅していく過程があるため、その過程では常にその位置が存在し、後続のpが対応する位置に正しく移動できなくなるため、absoluteを使う方が良いでしょう。

それが本当に機能しない場合は、トランジションの mode 属性を使用して、最初にアニメーションを完了させて、次の p が移動できるように、占有位置が完全に消えるようにします。ただし、この方法ではアニメーションを次々に完成させることができ、同時にアニメーションを完成させることはできません。

上記がこの記事の全内容です。その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。

関連する推奨事項:

Vueモバイル端末を使用して画像トリミングコンポーネントを実装する方法

vue2でデータリクエスト表示読み込みグラフを実装する方法

vueでstyleのscoped属性を使用する方法

以上がvue のトランジションを使用してスライドトランジションを完了する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。