vue动态绑定class和style

vue动态绑定class的几种方式

通过对象绑定

:class="{ 'active': isActive }"

1.绑定多个

第一种(用逗号隔开)

:class="{ 'active': isActive, 'sort': isSort }"

第二种(放在data里面)

//也可以把后面绑定的对象写在一个变量放在data里面,可以变成下面这样
:class="classObject"
data() {
  return {
    classObject:{ active: true, sort:false }
  }
}

第三种(使用computed属性)

:class="classObject"
data() {
  return {
    isActive: true,
    isSort: false
  }
},
computed: {
  classObject: function () {
    return {
      active: this.isActive,
      sort:this.isSort
    }
  }
}

数组方式

:class="[isActive,isSort]"
data() {
  return{
    isActive:'active',
    isSort:'sort'
  }
}

数组与三元运算符结合方式

:class="[isActive?'active':'']"
或者
:class="[isActive==1?'active':'']"
或者
:class="[isActive==index?'active':'']"
或者
:class="[isActive==index?'active':'otherActiveClass']"

动态绑定style

// 背景图片的动态绑定
<div class="control-panel">
      <span class=open :style="{'backgroundImage': 'url(' + (this.offline ? offlineIcon1 : isOpened == 1 ? openedIcon1 : closedIcon1) + ')'}" @click="toggle(1)">开窗帘</span>
      <span class=pause :style="{'backgroundImage': 'url(' + (this.offline ? offlineIcon2 : isOpened == 2 ? openedIcon2 : closedIcon2) + ')'}" @click="toggle(2)">暂停</span>
      <span class=close :style="{'backgroundImage': 'url(' + (this.offline ? offlineIcon3 : isOpened == 3 ? openedIcon3 : closedIcon3) + ')'}" @click="toggle(3)">关窗帘</span>
    </div>
<span @click="togle">
    <img :src=" this.isTrue ? srcs : nosrc" alt="">
</span>
 
export default{
    data(){
        return{
            isTrue:false,
            srcs:require('../images/icon-up@2x.png'),
            nosrc:require('../images/icon-down@2x.png')
        }
    },
    methods:{
        togle(){
            this.isTrue = !this.isTrue
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值