Closed
Description
Vue.js version
2.1.4
Reproduction Link
https://jsfiddle.net/acies/6x2g6v02/
Steps to reproduce
- Create a
<transition>
tag. - Set the transition tag to not rely on CSS with
:css="false"
, as well as trigger onappear
. - Add a
v-show
for an element inside the<transition>
tag. - Add an
@enter
callback for the transition, and calldone
inside the callback.
What is Expected?
The element toggled with v-show
is visually present (i.e. not display: none
) when in the @enter
callback—even before the call to done
—just as it is with v-if
.
What is actually happening?
Vue keeps (defers removal of) display: none
until after @after-enter
.
Callbacks for v-if
and v-show
are thus not interchangeable.
E.g.: starting an animation on @enter
that relies on retrieving the global position of an element would work for v-if
, but fail for v-show
due to the lack of offsets/offset parents as a result of display: none
.
Relevant:
vue/src/platforms/web/runtime/directives/show.js
Lines 31 to 32 in ae93d2b
Metadata
Metadata
Assignees
Labels
No labels