2016-11-30 45 views
0

我有这样的元素:绑定类在javascript过渡不适用

<transition v-on:enter="slideFadeIn" v-on:leave="fadeSlideOut"> 
    <div :style="{height: errHeight}" 
    v-show="errors.length > 0" 
    :class="{'height-tr': visible}"> 

这个转换过程:

slideFadeIn(el, done) { 
      $(el).slideDown(function() { 
      this.visible = true; 
    }); }, 

而这个CSS:

.height-tr { 
transition: height .5s; 
} 

正如你所看到的,我试图在转换完成后尝试应用新类(此类会激活div中的高度更改)。动画效果很好,如果我手动应用它,则该类可以正常工作,并且我已经确认在动画完成后this.visible为true,但该类未应用。有人知道为什么

+0

为什么没有这个类在任何时候,它只是有'transition'财产? – Saurabh

+0

因为这个类干扰了javascript的转换,使它变得可怕和生涩。 – daninthemix

回答

2

你使用jQuery吗?只有它看起来像this.visible超出范围,当您尝试并设置它:

slideFadeIn(el, done) { 
    $(el).slideDown(function() { 
    this.visible = true; // this wouldn't be the vm anymore 
    }) 
}, 

我明白你说的可见价值是正确的,但是这看起来并不像它会工作,所以不知道如何这是设置...

没有,如果你也有帮助:

slideFadeIn(el, done) { 
    var vm = this 
    $(el).slideDown(function() { 
    vm.visible = true; // this wouldn't be the vm anymore 
    }) 
}, 
+0

啊,愚蠢的错误。谢谢! – daninthemix