Vue.js css 转换类更改

Posted

技术标签:

【中文标题】Vue.js css 转换类更改【英文标题】:Vue.js css transition on class change 【发布时间】:2018-03-15 18:54:13 【问题描述】:

我正在尝试使用 css 转换属性通过添加 .lightTheme 类将 #app 背景从黑色淡化为白色。 .lightTheme 类的添加按预期工作,但转换没有。

我必须添加Vue transition element 吗?如果是这样怎么办? #app 没有离开/进入 dom - 我只是想为它的属性设置动画(如果可能的话,我不想添加不必要的代码!

HTML

<div id="app" v-bind:class=" lightTheme: isActive ">
   <button v-on:click="toggleTheme">Change theme</button>
</div>

JS

new Vue(
    el: '#app',

    data: 
        isActive: false
    ,

    methods: 
      toggleTheme: function()
          this.isActive = !this.isActive;
        // some code to filter users
      
    

);

CSS

#app 
    background: black;
    transition: 1s;


#app.lightTheme 
    background: white;

谢谢!

【问题讨论】:

我知道这是一个较老的问题,但我也遇到了这个问题。我想补充一点,我发现 Vue 的反向设计很糟糕,通过类操作的本地浏览器转换被有效地禁用。通过使用 Vue,我们删除了必须通过使用框架中的附加功能重新引入的原生功能。 【参考方案1】:

如果您必须为此类事情使用过渡,要回答您的问题,答案是。您提出的解决方案应该开箱即用。

可能有其他东西干扰了您的代码,但您发布的那个是正确的。

我附上了工作的 sn-p。

new Vue(
    el: '#app',
    data: 
        isActive: false
    ,
    methods: 
      toggleTheme: function()
          this.isActive = !this.isActive;
      
    
);
#app 
    background: black;
    transition: 1s;


#app.lightTheme 
    background: white;
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.4.4/vue.min.js"></script>
<div id="app" :class=" lightTheme: isActive ">
   <button @click="toggleTheme">Change theme</button>
</div>

【讨论】:

以上是关于Vue.js css 转换类更改的主要内容,如果未能解决你的问题,请参考以下文章