微信小程序动态绑定class

1,088 阅读1分钟

很多小伙伴微信小程序都不会动态绑定 class ,然而在平常的开发中,这是用的非常非常多的

比方说,我想要实现这样一个效果 image.png

点击下面不同的金额按钮,被点击的按钮就添加一个 active 样式

语法就是

class="{{ 表达式?'A':'B' }}"

现成的例子:

<block wx:for="{{arr}}">
    <view class="item {{index == currentIndex ? 'active' :''}}" data-index='{{index}}' data-val='{{item.key}}' bindtap='getVal'>
        {{ index }}元
</block>
.active{
    ...
}

如果添加多个的话就是

class="class1  {{ 表达式?'class2':'class3' }} {{ 表达式?'class4':'class5' }}"

需要注意的是最外面 class=" 这儿的引号和 {{}} 里面的引号要错开,外面是双引号,里面就是单引号,外面如果是单引号,那么里面就是双引号

动态绑定 style 也差不多 style="属性名:{{表达式?'值':'值'}}"

<block wx:for="{{arr}}">
<view data-index='{{index}}' data-val='{{item.key}}' bindtap='getVal' style="text-align:{{currentVal==item.key?'right':'left'}}">
    {{index}}元
</view>
</block>

image.png

同理,绑定多个也是差不多的

 style="text-align:{{currentIndex==index?'right':'left'}};font-size:{{currentIndex==index?'22rpx':'44rpx'}}"

image.png

还有一种就是在 js 文件里面定义变量,然后三目运算的时候直接使用变量就行

data:{
  colorR:"red",
  colorB:"blue"
}

style="background:{{表达式?colorR:colorB}}