uniapp复选框自定义样式&data数据与style交互

简介: uniapp复选框自定义样式&data数据与style交互

复选框自定义样式&data数据与style交互


最后有全部代码,各位友友不要划走。


手写复选框和点击出现下拉框效果




上图就是效果图,这里面的点击修改颜色和背景颜色的样式就是用style调用js的data数组中的属性来实现的。


编译器:hbuilder,运行器:微信开发者工具

页面主要用到@tap点击事件和v-show来进行显示和隐藏,关于调用数组中的属性,首先创建来一个点击事件,跳转后使用if-else判断数组中背景颜色bgcolor和color这两个属性是否为空,为空则赋值,不为空则赋空值,

然后我用到的是利用v-for出现的index序号来进行确认要复选的内容,在js当中用


this.test[e].scolor和this.test[e].bgcolor来实现回调和显示,关于调用js数组中属性的语法是this.数组名[下标].属性名,

如何利用style调用js数组当中数据,我用的是在view中写行内样式:style=“[{‘color’:item.scolor,‘background-color’:item.bgcolor}]”,

它的语法结构是:style=[{‘style属性名’:js数据名,‘style属性名’:js数据名}]

最后上源码,如有需要可自行搬运


<template>
  <view>
    <view>
      <button type="primary" @tap="btn">点击显示下拉框</button>
    </view>
    <view class="xia" v-show="flag">
      <view class="xia_1">
        <a type="primary" class="xia_left xia_all" @click="btn">取消</a>
        <a type="primary" class="xia_right xia_all" @click="btn">确认</a>
      </view>
      <view>
        <!-- 复选功能实现 -->
        <view v-for="(item,index) in test" :key="item.name" style="text-align: center;">
          <view class="cclass" @tap="fuxuan(index)"
            :style="[{'color':item.scolor,'background-color':item.bgcolor}]">
            <!-- :style="[{ backgroundImage:'url(' + avatar[index] + ')' }]"> -->
            {{item.name}}
          </view>
        </view>
      </view>
    </view>
  </view>
</template>
<script>
  export default {
    data() {
      return {
        flag: false,
        test: [{
            name: "王五",
            scolor: '',
            bgcolor: ''
          },
          {
            name: "张三",
            scolor: '',
            bgcolor: '',
          },
          {
            name: "李四",
            scolor: '',
            bgcolor: '',
          },
          {
            name: "小黑子",
            scolor: '',
            bgcolor: '',
          },
        ]
      }
    },
    methods: {
      btn() {
        this.flag = !this.flag
      },
      fuxuan(e) {
        // 找到数组属性用到了v-for中的index找下标,并且用this.数组名[index].属性名来调用
        // 这里用到了if-else判断颜色scolor和bgcolor是否为空字符串,如果为空代表没选中
        if (this.test[e].scolor == '') {
          this.test[e].scolor = 'red',
            this.test[e].bgcolor = 'lightblue'
        } else {
          this.test[e].scolor = ''
          this.test[e].bgcolor = ''
        }
      }
    }
  }
</script>
<style>
  .xia {
    /* 弹性布局 */
    position: absolute;
    /* 颜色布置 */
    background-color: #e2e2e2;
    /* 底部设置 */
    bottom: 0px;
    /* 宽度设置100% */
    width: 100%;
    /* 边框设置 */
    border: 1px solid white;
  }
  .xia_1 {
    /* 设置确认取消的宽高背景颜色等等 */
    width: 100%;
    /* 设置高背景颜色 */
    height: 75rpx;
    background-color: aliceblue;
    /* 设置文本水平居中 */
    justify-content: center;
  }
  .cclass {
    /* 垂直居中 */
    line-height: 100rpx;
    /* 字体大小 */
    font-size: 30rpx;
  }
  .xia_1 {
    /* 设置宽高背景颜色,块内文本居中对齐 */
    width: 100%;
    height: 75rpx;
    background-color: aliceblue;
    justify-content: center;
  }
  .xia_all {
    /* 取消默认块 */
    display: inline;
    /* 设置行高(居中)) */
    line-height: 75rpx;
  }
  .xia_left {
    /* 左浮动 */
    float: left;
    /* 文本颜色与左外边距 */
    color: blue;
    margin-left: 20rpx;
  }
  .xia_right {
    /* 右浮动,文本颜色和右外边距 */
    float: right;
    color: green;
    margin-right: 20rpx;
  }
</style>



相关文章
|
24天前
|
JavaScript Java Android开发
uniapp通过蓝牙传输数据 (安卓)
uniapp通过蓝牙传输数据 (安卓)
32 1
|
3月前
uniapp自定义头部导航怎么实现?
uniapp自定义头部导航怎么实现?
|
4月前
|
Web App开发 小程序 Android开发
Uniapp 底部导航栏 自定义 tabBar 全端 全页面引用跳转 组件
Uniapp 底部导航栏 自定义 tabBar 全端 全页面引用跳转 组件
76 0
|
4月前
|
JavaScript
uniapp中复选框的使用
uniapp中复选框的使用
83 0
|
5月前
|
JSON 数据格式
uniapp自定义头部导航样式
uniapp自定义头部导航样式
59 0
|
4月前
|
Web App开发 小程序 Android开发
Uniapp from 表单组件 多层选择 开关 评分 滑块 步进器 日期框 级联选择 下拉列表 复选框 单选框 多行文本 单行文本 textarea radio checkbox picker
Uniapp from 表单组件 多层选择 开关 评分 滑块 步进器 日期框 级联选择 下拉列表 复选框 单选框 多行文本 单行文本 textarea radio checkbox picker
34 0
|
5月前
uniapp页面之间通信、传参、传值方法(父→传→子,子→传→父);获取被打开页面的数据→传→当前页面;当前页面的数据→传→被打开页面
uniapp页面之间通信、传参、传值方法(父→传→子,子→传→父);获取被打开页面的数据→传→当前页面;当前页面的数据→传→被打开页面
|
4月前
|
移动开发 JavaScript 小程序
uniapp中组件库的Checkbox 复选框 的丰富使用方法
uniapp中组件库的Checkbox 复选框 的丰富使用方法
288 0
|
21天前
|
小程序 程序员
【uniapp微信小程序】自定义导航栏:非首页展示的实现方式(极为快捷方式)
【uniapp微信小程序】自定义导航栏:非首页展示的实现方式(极为快捷方式)
14 0
|
24天前
|
移动开发 小程序 API
uniapp通过蓝牙传输数据 (ios)
uniapp通过蓝牙传输数据 (ios)
31 1

热门文章

最新文章