由于class与style均为样式属性,因此可以通过v-bind指令进行属性绑定,属性表达式结果的类型可以是对象或数组。本章就介绍下绑定样式属性的四种方法。


以对象的形式绑定class属性

<style>
  .actived{color:red;}
</style>

给标签动态添加属性名为actived的class属性,属性的样式用changeStyle变量表示,并将变量值设为false,意思是初始化的时候不显示actived标签名。

var vm=new Vue({
    el:'#app',
    data:{
      changeStyle:false
    },
    methods:{
      handleClick:function(){
       this.changeStyle=!this.changeStyle;}}})

继续给标签绑定click事件,点击div时,即可改变actived的样式,实现切换文本颜色功能。

 <div id="app">
    <div @click="handleClick" :class="{actived:changeStyle}">Hello World</div>
  </div> 

以数组的形式绑定样式

 <style>
 .actived{color:red;}
 </style>

首先,我在样式的数组中定义了两个变量,分别是active和current,并将其放入data中。

<div id="app">
    <div @click="handleClick" :class="[active,current]">Hello World</div>
</div>

将active中的属性名置为空,current的属性名设为currented,div上此时只有一个样式名currented。当我执行点击操作时,会对active中的属性名进行判断,由于目前的属性名为空,因此会将actived样式添加到div上。

var vm=new Vue({
    el:'#app',
    data:{
      active:'',
      current:'currented'
    },
    methods:{
      handleClick:function(){
        this.active=this.active==='actived'?'':'actived';}}})

以对象的形式绑定内联样式

在这里我直接将绑定到了一个统一的样式对象中。

<div id="app">
   <div :style="styleObj" @click="handleClick">Hello World</div>
</div>

在data中定义样式对象的具体样式

data:{
 styleObj:{
   color:'black'}
}

实现颜色的切换效果。

methods:{
   handleClick:function(){
     this.styleObj.color=this.styleObj.color==='black'?'red':'black';
}

 数组形式和对象形式类似,在这里就不演示了。

Logo

前往低代码交流专区

更多推荐