微信小程序按钮控件设置呈现效果

2023-10-30

1、效果图

在小程序中完成上述布局,需要设置四个按钮位置,控制每个按钮大小、设置按钮背景颜色,设置标题和图标的位置。

2、代码说明

2.1 index.wxml

<view class="block">
  <!--呈现标题-->
  <view class="title-bar">
    <text>助手功能模块</text>
    <text>FUNCTION</text>
  </view>
  <!--呈现按钮,用的是循环控制,也可单独写四个一样的代码,更换里面的背景颜色、文字内容和图标-->
  <view class="content-bar">
    <button wx:for="{
  {list}}" wx:key="*this" class="list" style="background-image:url({
  {item.imageurl}});">
      <text class="title">{
  {item.title}}</text>
      <view class="icon iconfont {
  {item.icon}}"></view>
    </button>
  </view>
</view>

 

2.2 index.wxss

/*按钮中的icon使用的是iconfont,因此引入了iconfont中的样式*/
@import "icon.wxss";
.block{
  display: flex;
  flex-direction: column;
  font-size: 35rpx;
  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}

.title-bar {
  opacity: 1;
  display: flex;
  flex-direction: column;
  text-align: center;
}
.content-bar {
  background-color: white;
  height: 400rpx;
  width: 100%;
  display: flex;
  /* flex-direction是用来控制里面的内容时水平呈现还是垂直呈现*/
  flex-direction: row;
  /* flex-wrap是用来控制能否换行,必须设置为能换行 */
  flex-wrap: wrap;
  padding-top: 20rpx;
  padding-right: 10rpx;
}
.list {
  padding: 20rpx 20rpx;
  display: flex;
  flex-direction: row;
  /* 背景图片能够完全呈现,此处是关键,否则图片只显示局部 */
  background-size: 100% 100%;
}

.list:not([size="default"]) {
 /* 因为是按钮,有两个size,它的大小无法改变,此样式用来改变按钮的大小 */
  height: 150rpx;
  width: 45%;
}

.title {
  font-size: 30rpx;
  color: white;
  padding-top: 30rpx;
  padding-left: 20rpx;
}

.icon {
  color: white;
  padding-left: 30rpx;
}

 

2.3 icon.wxss

该文件放置在与index.wxss同一目录下。

@font-face {font-family: "iconfont";
  src: url('iconfont.eot?t=1583731563652'); /* IE9 */
  src: url('iconfont.eot?t=1583731563652#iefix') format('embedded-opentype'), /* IE6-IE8 */
  url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2'),
  url('iconfont.woff?t=1583731563652') format('woff'),
  url('iconfont.ttf?t=1583731563652') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */
  url('iconfont.svg?t=1583731563652#iconfont') format('svg'); /* iOS 4.1- */
}

.iconfont {
  font-family: "iconfont" !important;
  font-size: 70rpx;
  font-style: normal;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
/*目前只保留了效果图中的四个图标*/
.icon-data:before {
  content: "\e6f9";
}

.icon-calendar:before {
  content: "\e746";
}

.icon-confirm:before {
  content: "\e749";
}

.icon-editor:before {
  content: "\e74d";
}

 

备注:若读者想根据需要产生iconfont进行引用,可通过如下几步进行操作。

(1)登录http://www.iconfont.cn/ 阿里巴巴矢量图标库,github或微博登录;

(2)选择喜欢的图标加入购物车;

(3)然后点击右侧购物车,选择添加至项目,选择项目名称,选择font class,下载至本地;

(4)选择iconfont.css,用记事本打开,将内容粘贴到icon.wxss即可。

2.4 index.js

//背景图片我用的是base64,在微信小程序中background-image若为图片,在真机上无法呈现
//因此将真实图片转为base64进行引用
var imageData = require('json.js');
Page({
  data: {
    list: [{
      imageurl: imageData.dataList[0],
      title: "课堂教学签到",
      icon: "icon-confirm",
      id:"1",
    }, {
      imageurl: imageData.dataList[0],
      title: "设备故障报修",
      icon: "icon-data",
      id: "2",
    }, {
      imageurl: imageData.dataList[0],
      title: "教室使用预约",
      icon: "icon-calendar",
      id: "3",
    }, {
      imageurl: imageData.dataList[0],
      title: "个人信息中心",
      icon: "icon-editor",
      id: "4",
    }]
  }
})

 

2.5 引用的json.js

将json.js放置在于index.js同一文件夹下。

//将图片转为base64,我用的是字符串保存,然后存入到数组中,没有用到json数据。
//此处本应是四个背景图片,但是字符串太长,无法在一篇博客中呈现,因此简化为一个字符串
var imageurl1 ="data:image/jpg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAABkAAD/4QMqaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzE0MiA3OS4xNjA5MjQsIDIwMTcvMDcvMTMtMDE6MDY6MzkgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QUM2ODU4RTMyRjMzMTFFOTgwMTY5OEVDNjM3QUEzRDIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QUM2ODU4RTQyRjMzMTFFOTgwMTY5OEVDNjM3QUEzRDIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBQzY4NThFMTJGMzMxMUU5ODAxNjk4RUM2MzdBQTNEMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBQzY4NThFMjJGMzMxMUU5ODAxNjk4RUM2MzdBQTNEMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pv/uAA5BZG9iZQBkwAAAAAH/2wCEAAEBAQEBAQEBA
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

微信小程序按钮控件设置呈现效果 的相关文章

随机推荐

  • 网络复习——路由器&交换机工作原理

    1 路由器的工作原理 路由器的工作原理 3层设备 当数据包进入路由器时 路由器先查看数据包中的2层报头目标MAC地址 广播 解封装到3层 当路由器收到数据包时 如果目标MAC为全F 那么路由器无法判断广播与自己有无关系 需要借助3层 组播
  • Java之线程详解(三)——多线程常用API、七种状态、优先级、Lock锁

    一 多线程常用API join 方法 多线程环境下 如果需要确保某一线程执行完毕后才可继续执行后续的代码 就可以通过使用 join 方法完成这一需求设计 eg public class Thread01 public static void
  • Pinia: vue的最新状态管理库

    Pinia vue的最新状态管理库 vuex状态管理工具的替代品 pinia官方文档 注意defineStore 的返回值还是一个方法 所以useCounterStore是一个方法 执行该方法得到一个对象 getters 异步action
  • 深入学习jquery源码之jQuery的选择器引擎Sizzle(一)

    深入学习jquery源码之jQuery的选择器引擎Sizzle Sizzle是一个纯javascript CSS选择器引擎 jquery1 3开始使用sizzle Sizzle一反传统采取了相反的Right To Left的查询匹配方式 效
  • 【安卓学习之常见问题】android路径及文件问题

    安卓学习之常见问题 android路径及文件问题 系列文章目录 提示 这里是收集了安卓学习之常见问题的相关文章 安卓学习之常见问题 界面 Activity Fragment 之间的数据传递 Intent Bundle 任我飞的博客 CSDN
  • Docker进阶学习:Compose安装

    这个compose是要单独安装的 不是你只安装一个docker服务 1 安装 官网提供 没有下载成功 curl L https github com docker compose releases download 1 26 2 docke
  • 华为生态链的全方位解读

    来源 本翼资本CapitalWings 概要 华为作为目前国内ICT行业的融合性创新龙头企业 其多年经营探索的经营模式和宝贵经验使得其成为传统制造业转型的标杆 而对于新兴企业 能够越过坎坷的探索之路 直接嫁接华为的 云管端一体化 经营模式
  • Web框架安全

    模板引擎与XSS防御 XSS攻击是在用户的浏览器上执行的 其形成过程则是在服务器端页面渲染时 注入了恶意的HTML代码导致的 从MVC架构来说 是发生在View层 因此使用 输出编码 的防御方法更加合理 这意味着需要针对不同上下文的XSS攻
  • RNAfold的使用方法

    RNAfold是预测序列二级结构的软件 本地版下载地址 http www tbi univie ac at ivo RNA windoze 在上面网址中还有其他预测结构的软件可供下载 现在主要介绍一下本地下载版的使用方法 1 不能够双击应用
  • [4G/5G/6G专题基础-155]: 5G 3GPP高精确室内定位原理、AI方案概述

    目录 前言 第1章 5G高精确定位概述 1 1 概述 1 2 3GPP对定位的指标需求 第2章 5G系统能够实现高精度定位的技术基础 2 1 基本思想 2 2 技术基础 1 高载波频率 空间 高频波直径路线特性 2 短符号周期 高带宽 时间
  • 服务器系统2019装vm,在Linux中使用虚拟机安装Windows Server 2019的方法

    你可以在Linux系统中使用VMware Workstation或Virtualbox虚拟机来安装Windows Server 2019 经过安装实测能正常运行Windows Server 2019操作系统 一 安装及配置虚拟机参考文章 请
  • @SuppressLint("NewApi")、TargetApi()、RequiresApi()

    android下的SuppressLint与TargetApi Android应用在不同版本间兼容性处理
  • C++设计模式

    这里摘录的不是很全 主要记录了个人认为需要记录的模式 文章目录 创建型模式 建造者模式 结构型模式 Adapter模式 装饰者 decorator 模式 组合实体 Composite 模式 享元 Flyweight 模式 代理 Proxy
  • sql:无法解决 equal to 操作中 "Chinese_PRC_CI_AS" 和 "Chinese_Taiwan_Stroke_CI_AS" 之间的排序规则冲突。

    无法解决 equal to 操作中 Chinese PRC CI AS 和 Chinese Taiwan Stroke CI AS 之间的排序规则冲突 CREATE VIEW View VipBranchStaffBranchList AS
  • VMware虚拟机安装Windows 7

    昨天我总结了win10和win11的教程 今天也把win7总结下 一来方便各位探索Windows7 二来也可以给自己备份 1 准备工作 首先我们在VMware里面安装Windows7需要做的准备工作 VMware Workstation软件
  • 国际版阿里云/腾讯云:阿里弹性云手机正式公测

    阿里弹性云手机正式公测 什么是 云手机 与我们传统的手机有何区别 它又有什么用处呢 当你接触到云手机概念的时候 是不是也会有这一连串的疑问 本文将为你揭开云手机的奥秘面纱 2021年12月1日 阿里弹性云手机正式公测 移动运用新载体 赋予手
  • Linux系统跳过密码登录

    一 引导系统 RHEL7的标准引导系统是GRUB2 RHEL6默认使用GRUB1 这里主要讲GRUB2 在Linux系统开机选择内核时 按下e进入内核引导参数的编辑菜单 找到以linux16开头的一行 在行末添加更多的命令 例如 在行末尾添
  • 下载文件的响应头设置

    headers add Content Disposition attachment filename 1 jpg
  • 解决【C++】vector subscript out of range下标越界

    1 检查遍历语句是否正确 vector
  • 微信小程序按钮控件设置呈现效果

    1 效果图 在小程序中完成上述布局 需要设置四个按钮位置 控制每个按钮大小 设置按钮背景颜色 设置标题和图标的位置 2 代码说明 2 1 index wxml