当前位置:   article > 正文

微信小程序自定义tabBar详细教程,且自适应尺寸和实现高斯模糊版_前端小程序怎么设置tabbar字体大小

前端小程序怎么设置tabbar字体大小

进入下面小程序可以体验效果

 

1、需要在app.json配置

custom 必须是true

PS:自定义tab-bar里面的JS中自定义的list 数量必须要和 app.json 中的list数量相同!!

  1. "tabBar": {
  2. "custom": true,
  3. "selectedColor": "#33a3dc",
  4. "list": [
  5. {
  6. "iconPath": "asset/imge/hu.png",
  7. "selectedIconPath": "asset/imge/hu-fill.png",
  8. "pagePath": "pages/index/index",
  9. "text": "心动"
  10. },
  11. {
  12. "iconPath": "asset/imge/per.png",
  13. "selectedIconPath": "asset/imge/per-fill.png",
  14. "pagePath": "pages/my/my",
  15. "text": "我的"
  16. }
  17. ]
  18. },

 2、根目录app.js 创建全局变量

这里全局变量的作用是为了自定义tab-bar的索引能够自动分配给list中的json页面

  1. // app.js
  2. App({
  3. onLaunch() {
  4. //获取系统信息
  5. wx.getSystemInfo({
  6. success: res => {
  7. this.system = res
  8. }
  9. })
  10. //获取胶囊信息
  11. this.menu = wx.getMenuButtonBoundingClientRect();
  12. },
  13. globalData: {
  14. tabBarIndex:0
  15. }
  16. })

 3、根目录新建文件夹

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

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

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

WXML代码:

  1. <view class="tabbar">
  2. <block wx:for="{{ list }}" wx:key="index">
  3. <view class="tabbar-item "
  4. data-page="{{ item.pagePath }}"
  5. data-index="{{ index }}"
  6. bindtap="selectPage"
  7. >
  8. <image class="tabbar-item-image" src="{{ select === index ? item.selectedIconPath : item.iconPath }}"></image>
  9. <text class="tabbar-item-text" style="{{select==index?item.textColor:''}}">{{ item.text }}</text>
  10. </view>
  11. </block>
  12. </view>

 js代码:

  1. const app = getApp()
  2. Component({
  3. data: {
  4. select: 0,
  5. list: [
  6. {
  7. iconPath: "/asset/imge/hu.png",
  8. selectedIconPath: "/asset/imge/hu-fill.png",
  9. pagePath: "/pages/index/index",
  10. text: "心动",
  11. textColor:"color:#ef3166;"
  12. },
  13. {
  14. iconPath: "/asset/imge/per.png",
  15. selectedIconPath: "/asset/imge/per-fill.png",
  16. pagePath: "/pages/my/my",
  17. text: "我的",
  18. textColor:"color:#0a993a;"
  19. }
  20. ]
  21. },
  22. methods: {
  23. selectPage(e) {
  24. const { page,index } = e.currentTarget.dataset;
  25. app.globalData.tabBarIndex=index;
  26. wx.switchTab({
  27. url: page,
  28. })
  29. }
  30. }
  31. })

wxss代码:

高斯模糊代码

backdrop-filter: blur(10px);

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

  1. .tabbar {
  2. width: 100%;
  3. display: flex;
  4. backdrop-filter: blur(10px);
  5. background-color: rgb(0 0 0 / .10);
  6. position: fixed;
  7. bottom: 0;
  8. padding-top: 10rpx;
  9. z-index: 9999;
  10. box-shadow: 0rpx -2rpx 20rpx 2rpx rgba(165,165,165,0.34);
  11. background-color: rgba(238, 238, 238, 0.89);
  12. padding-bottom:calc(10rpx + env(safe-area-inset-bottom) / 2);
  13. }
  14. .tabbar-item {
  15. flex: 1;
  16. display: flex;
  17. flex-direction: column;
  18. justify-content: center;
  19. align-items: center;
  20. color: #7c7c7c;
  21. }
  22. .tabbar-item-image {
  23. width: 50rpx;
  24. height: 50rpx;
  25. }
  26. .tabbar-item-text {
  27. font-size: 28rpx;
  28. margin-top: 1rpx;
  29. }
  30. .tabbar-select {
  31. color: #0a993a;
  32. }

4、page 索引页面代码(必须)

例如:我的

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

js代码中需要加入该函数,select 根据索引属性获取全局变量值就行

  1. const app = getApp() //这段代码需要放在page页面JS的最顶部
  2. /**
  3. * 生命周期函数--监听页面显示
  4. */
  5. onShow(){
  6. if (typeof this.getTabBar === 'function' &&
  7. this.getTabBar()) {
  8. this.getTabBar().setData({
  9. // 根据全局变量获取tab的索引顺序,
  10. select: app.globalData.tabBarIndex
  11. })
  12. }
  13. },

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/245893
推荐阅读
相关标签
  

闽ICP备14008679号