Вложенный переход Vue не позволяет применить ожидаемые классы

#vue.js #transition

Вопрос:

У меня есть два вложенных перехода, первый из которых работает на верхнем уровне, а «дочерний» — нет.

Когда элемент внутри <transition> тегов соответствует условию исчезновения, .product-image-sub-wrapper элемент правильно получает add-to-cart-translate-leave-active класс. Однако <img> элемент не получает .add-to-cart-scale-leave-active класс: он вообще не получает никакого класса.

Почему?

Разметка:

 <transition name="add-to-cart-translate">
  <div
    v-if="!toggleRollInto amp;amp; !addedToCart"
    class="product-image-sub-wrapper"
  >
    <transition name="add-to-cart-scale" appear>
      <img
        v-if="!toggleRollInto amp;amp; !addedToCart" 
        :src="product.PhotoUrl"
      />
    </transition>
  </div>
</transition>
 

CSS:

 .product-image-wrapper {
  position: relative;
  width: 100%;
  height: 325px;

  .product-image-sub-wrapper {
    width: 100%;
    height: 325px;
    overflow: hidden;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1000;

    img {
      max-width: 100%;
      width: 100%;
      position: absolute;
      top: 0;
      left: 0;
      z-index: 1000;
      display: block;
    }
  }
}

.add-to-cart-translate-leave-active {
  animation: add-to-card-translate 1.35s;
}

@keyframes add-to-card-translate {
  30% {
    transform: translate(0, -30px);
    opacity: 1;
  }
  100% {
    transform: translate(0, calc(100vh - 190px));
    opacity: 0;
  }
}

.add-to-cart-scale-leave-active {
  animation: add-to-card-scale 1.35s;
}

@keyframes add-to-card-scale {
  30% {
    transform: scale(1.05);
    transform-origin: top left;
  }
  100% {
    transform: scale(0.2);
    transform-origin: left;
  }
}