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>



相关文章
|
1月前
|
JSON 数据可视化 JavaScript
低代码可视化-uniapp响应式数据data-代码生成器
低代码可视化-uniapp响应式数据data-代码生成器
35 0
|
1月前
|
数据可视化 搜索推荐
重磅更新-UniApp自定义字体可视化设计
重磅更新-UniApp自定义字体可视化设计
39 0
|
4月前
|
前端开发
uniapp 数据父传子
在uni-app中,父组件向子组件传递数据主要通过属性绑定的方式实现。这里提供一个简单的示例来说明如何进行父传子的数据传递:
48 1
uniapp 数据父传子
|
4月前
|
存储
uniapp实战 -- 个人信息维护(含选择图片 uni.chooseMedia,上传文件 uni.uploadFile,获取和更新表单数据)
uniapp实战 -- 个人信息维护(含选择图片 uni.chooseMedia,上传文件 uni.uploadFile,获取和更新表单数据)
150 2
|
4月前
|
安全
uniapp实战 —— 自定义顶部导航栏
uniapp实战 —— 自定义顶部导航栏
187 2
|
4月前
uniapp实战 —— 轮播图【自定义指示点】(含组件封装,自动注册全局组件,添加全局组件类型声明)
uniapp实战 —— 轮播图【自定义指示点】(含组件封装,自动注册全局组件,添加全局组件类型声明)
242 1
|
5月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp小程序的共享单车数据存储系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp小程序的共享单车数据存储系统附带文章源码部署视频讲解等
49 1
|
4月前
uniapp 添加自定义图标
uniapp 添加自定义图标
184 0
|
4月前
|
前端开发 JavaScript 索引
uniapp的u-album组件自定义删除功能
这样,你就可以在u-album组件中实现自定义的删除功能了。需要注意的是,这个删除操作只是在前端删除了图片项,并没有在后端删除对应的图片文件,如果你需要在后端也删除对应的图片文件,你还需要在删除操作后发送一个请求到后端,让后端删除对应的图片文件。
115 0
|
5月前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的电竞交互管理系统附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的电竞交互管理系统附带文章和源代码部署视频讲解等
29 1