微信小程序自定义tabBar详细教程,且自适应尺寸和实现高斯模糊版

news/2024/7/20 2:41:06 标签: 微信小程序, 小程序

 IOS示例:

 

安卓示例:

 高斯模糊示例:

1、需要在app.json配置

custom 必须是true

"tabBar": {
    "custom": true,
    "selectedColor": "#33a3dc",
    "list": [
      {
        "iconPath": "asset/imge/hu.png",
        "selectedIconPath": "asset/imge/hu-fill.png",
        "pagePath": "pages/index/index",
        "text": "心动"
      },
      {
        "iconPath": "asset/imge/per.png",
        "selectedIconPath": "asset/imge/per-fill.png",
        "pagePath": "pages/my/my",
        "text": "我的"
      }
    ]
  },

 2、根目录新建文件夹

必须是 “custom-tab-bar” 这个名字

custom-tab-bar/index ,必须是index

然后该文件夹目录下的代码

WXML代码:

<view class="tabbar">
    <view style="{{select==index&&index==0?'color: #ef3166;':''}}"
        class="tabbar-item {{ select === index ? 'tabbar-select' : '' }}" wx:for="{{ list }}" 
        wx:key="index"
        data-page="{{ item.pagePath }}"
        data-index="{{ index }}"
        bindtap="selectPage"
    >
        <block>
            <image class="tabbar-item-image"src="{{ select === index ?  item.selectedIconPath : item.iconPath }}"></image>
            <text  class="tabbar-item-text">{{ item.text }}</text>
        </block>
    </view>
</view>

 js代码:

Component({
  data: {
      select: 0,
      list: [
          {
            iconPath: "/asset/imge/hu.png",
            selectedIconPath: "/asset/imge/hu-fill.png",
            pagePath: "/pages/index/index",
            text: "心动"
          },
         {
            iconPath: "/asset/imge/per.png",
            selectedIconPath: "/asset/imge/per-fill.png",
            pagePath: "/pages/my/my",
            text: "我的"
         }
      ]
  },
  methods: {
      selectPage(e) {
          const { page } = e.currentTarget.dataset;
          wx.switchTab({
            url: page,
          })
      }
  }
})

wxss代码:

高斯模糊代码

backdrop-filter: blur(10px);

background-color: rgb(0 0 0 / .10);

.tabbar {
  width: 100%;
  display: flex;
  backdrop-filter: blur(10px);
  background-color: rgb(0 0 0 / .10);
  position: fixed;
  bottom: 0;
  padding-top: 10rpx;
  z-index: 9999;
  box-shadow: 0rpx -2rpx 20rpx 2rpx rgba(165,165,165,0.34);
  background-color: rgba(238, 238, 238, 0.89);
  padding-bottom: 20rpx;
}

.tabbar-item {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  color: #7c7c7c;
}

.tabbar-item-image {
  width: 50rpx;
  height: 50rpx;
}

.tabbar-item-text {
  font-size: 28rpx;
  margin-top: 1rpx;
}

.tabbar-select {
  color: #0a993a;
}

page 索引页面代码(必须)

例如:我的

在需要跳转的页面当作加入下面代码,否则tabBar不生效。微信自定义tabBar必须的方式

js代码中需要加入该函数,select 根据索引属性填数值就行

/**
   * 生命周期函数--监听页面显示
   */
  onShow(){
    if (typeof this.getTabBar === 'function' &&
      this.getTabBar()) {
      this.getTabBar().setData({
        // 根据tab的索引顺序是1
        select: 1    
      }) 
    }
  },


http://www.niftyadmin.cn/n/4951215.html

相关文章

【3Ds Max】车削命令的简单使用(以制作花瓶为例)

简介 在3ds Max中&#xff0c;"车削"&#xff08;Lathe&#xff09;是一种建模命令&#xff0c;用于创建围绕轴线旋转的几何形状。通过车削命令&#xff0c;您可以将一个闭合的平面或曲线几何形状旋转&#xff0c;从而生成一个立体对象。这种方法常用于创建圆柱体、…

docker redis 配置文件样例

文章目录 1. redis的配置文件1.1 chatGPT 写的配置样例及坑点。 2. docker-compose.yml 文件 1. redis的配置文件 redis官方的配置文件样例 非常有用&#xff0c; 都是从官方文档过摘过来的 1.1 chatGPT 写的配置样例及坑点。 #以下配置来自 chatGPT # 设置 Redis 绑定的 IP…

【论文笔记】MetaBEV: Solving Sensor Failures for BEV Detection and Map Segmentation

原文链接&#xff1a;https://arxiv.org/abs/2304.09801 1. 引言 目前&#xff0c;多模态融合感知中的一大问题在于忽视了传感器失效带来的影响。之前工作的主要问题包括&#xff1a; 特征不对齐&#xff1a;通常使用CNN处理拼接后的特征图&#xff0c;存在几何噪声时可能导致…

单机模型并行最佳实践

单机模型并行最佳实践 模型并行在分布式训练技术中被广泛使用。 先前的帖子已经解释了如何使用 DataParallel 在多个 GPU 上训练神经网络&#xff1b; 此功能将相同的模型复制到所有 GPU&#xff0c;其中每个 GPU 消耗输入数据的不同分区。 尽管它可以极大地加快训练过程&…

visual studio 2022配置

前提&#xff1a;我linux c 开发 一直在使用vscode 更新了个版本突然代码中的查找所用引用和变量修改名称不能用了&#xff0c;尝试了重新配置clang vc都不行&#xff0c;估计是插件问题&#xff0c;一怒之下改用visual studio 2022 为了同步2个IDE之间的差别&#xff0c;目前…

【Java并发编程面试题(60道)】

toc Java并发编程面试题(60道) 基础 1.并行跟并发有什么区别&#xff1f; 从操作系统的角度来看&#xff0c;线程是CPU分配的最小单位。 并行就是同一时刻&#xff0c;两个线程都在执行。这就要求有两个CPU去分别执行两个线程。并发就是同一时刻&#xff0c;只有一个执行&…

eUICC 识别号 (EIN)

GSMA 是业界指定的一级 EID&#xff08;eUICC 标识符&#xff09;分配机构&#xff0c;负责协调 eUICC 标识号的发行和使用。每个 eSIM 都需要具有唯一、持久且安全的 EID&#xff0c;以识别嵌入式或可移动 eUICC&#xff0c;如SGP.29中所定义。 GSMA eUICC 身份方案为每个 eUI…

C++:通过find/substr分割字符串

find函数可以在一个目标字符串中查找子字符串&#xff0c;返回值为子字符串在目标字符串中的起始位置 substr通过起始位置和长度可以截取一段字符串 将find和substr结合可以用于分割字符串 #include <iostream> #include <string> #include <tuple>using …