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

A prettier animation

We will now make a more complex but better animation, with some 3D effects. In addition to the hand, we will animate the .wrapper element (for a 3D flip) and the .card elements. The cards will start being piled up and will progressively expand to their expected position in the hand. At the end, it will animate as if the player is picking up the cards from a table.

  1. Start by creating new transition CSS classes with the 'hand' name instead of 'fade':
      .hand-enter-active,
.hand-leave-active {
transition: opacity .5s;
}

.hand-enter,
.hand-leave-to {
opacity: 0;
}
  1. Change the transition name in the main template too:
      <transition name="hand">
<hand v-if="!activeOverlay" :cards="testHand" />
</transition>
  1. Let's animate the wrapper element. Use the CSS transform property to apply a 3D transformation to the element:
      .hand-enter-active .wrapper,
.hand-leave-active .wrapper {
transition: transform .8s cubic-bezier(.08,.74,.34,1);
transform-origin: bottom center;
}

.hand-enter .wrapper,
.hand-leave-to .wrapper {
transform: rotateX(90deg);
}

The right rotating axis is the horizontal one, which is x. This will animate the cards just as if they were being picked up by the player. Note that there is a cubic-bezier easing function defined to make the animation smoother.

  1. Finally, animate the cards themselves by setting a negative horizontal margin so that they will seem to be piled up:
      .hand-enter-active .card,
.hand-leave-active .card {
transition: margin .8s cubic-bezier(.08,.74,.34,1);
}

.hand-enter .card,
.hand-leave-to .card {
margin: 0 -100px;
}

Now, if you hide and show the hand with the browser console like we did before, it will have a nice animation.

主站蜘蛛池模板: 巧家县| 库尔勒市| 泗水县| 岳阳市| 华阴市| 井研县| 册亨县| 潍坊市| 松江区| 黑龙江省| 宜宾县| 静海县| 神农架林区| 句容市| 赤水市| 灵寿县| 驻马店市| 沙田区| 新昌县| 曲周县| 将乐县| 杨浦区| 满洲里市| 天柱县| 平定县| 潮州市| 中山市| 闻喜县| 平谷区| 海口市| 镇康县| 灵石县| 沁阳市| 弋阳县| 通山县| 广西| 冷水江市| 弥勒县| 武城县| 上犹县| 来凤县|