官术网_书友最值得收藏!

The CSS transitions

Like before, we have the following six CSS classes at our disposable, prefixed with the name of our group transition, 'card': card-enter-active, card-enter, card-enter-to, card-leave-active, card-leave, and card-leave-to. They will be applied to the direct children of the group transition, that is, our cards components.

  1. The group transition has an additional class applied to moving items--v-move. Vue will use the CSS transform property on the items to make them move, so we just need to apply a CSS transition on it with at least a duration:
      .card-move {
transition: transform .3s;
}

Now, when you click on a card to play it, it should disappear and the remaining cards will move to their new position. You can also add cards to the hand.

  1. Select the main component in the Vue devtools and execute this into the browser console:
      state.testHand.push($vm.testDrawCard())

Selecting a component in the devtools exposes it in the browser console as $vm.

Like we did for the hand, we will also add animations for the cards when they enter the hand, and when they are played (and thus leave the hand).

  1. Since we need to transition multiple CSS properties on the card with the same timings all the time (except during the leave transition), we will change the .card-move rule we just wrote into this:
      .card {
/* Used for enter, move and mouse over animations */
transition: all .3s;
}
  1. For the enter animation, specify the state of the card for the start of the transition:
      .card-enter {
opacity: 0;
/* Slide from the right */
transform: scale(.8) translateX(100px);
}
  1. The leave animation requires a few more rules since the play card animation is more complex, and involves zooming the card upward:
      .card-leave-active {
/* We need different timings for the leave transition */
transition: all 1s, opacity .5s .5s;
/* Keep it in the same horizontal position */
position: absolute !important;
/* Make it painted over the other cards */
z-index: 10;
/* Unclickable during the transition */
pointer-events: none;
}

.card-leave-to {
opacity: 0;
/* Zoom the card upwards */
transform: translateX(-106px) translateY(-300px) scale(1.5);
}

This is enough to make your cards all properly animated. You can try playing and adding cards to the hand again to see the result.

主站蜘蛛池模板: 太谷县| 多伦县| 东阿县| 海伦市| 铜梁县| 敖汉旗| 庆阳市| 抚州市| 合水县| 太保市| 龙泉市| 荥阳市| 屯昌县| 江油市| 巴青县| 渭源县| 无棣县| 沙洋县| 衡阳县| 镇平县| 青冈县| 滨海县| 松溪县| 固始县| 嘉荫县| 浮山县| 武川县| 铜川市| 常宁市| 宝山区| 武威市| 花莲县| 叙永县| 嵊州市| 长宁县| 东阳市| 宜川县| 靖宇县| 秦皇岛市| 囊谦县| 卫辉市|