微信小程序 - 自定义tabbar

各种奇葩的需求,造就了我们

wxml

1 <view class="nav-tabs">
2   <view class="tab-list  {{currentTab == idx?‘active‘:‘default‘}}" wx:for="{{tabArray}}" wx:key="prototype" wx:for-index="idx"            wx:for-item="itemName" data-current="{{idx}}" bindtap="swichNav">{{itemName}}
3   </view>
4 </view>
5 <view class="{{currentTab == idx?‘show‘:‘hidden‘}} tab-content" wx:for="{{tabArray}}" wx:key="prototype" wx:for-index="idx"               wx:for-item="itemName">{{itemName}}-{{idx+1}}
6 </view>

wxss

 1 /**index.wxss**/
 2
 3 page {
 4   display: flex;
 5   flex-direction: column;
 6   height: 100%;
 7 }
 8
 9 .nav-tabs {
10   width: 100%;
11   height: 75rpx;
12   display: flex;
13   position: fixed;
14   bottom: 0;
15 }
16
17 .tab-content {
18   flex: 1;
19 }
20
21 .default {
22   line-height: 75rpx;
23   text-align: center;
24   flex: 1;
25   border-bottom: 1px solid #eee;
26   color: #000;
27   font-weight: bold;
28   font-size: 28rpx;
29 }
30
31 .active {
32   line-height: 75rpx;
33   text-align: center;
34   color: #fc5558;
35   flex: 1;
36   border-bottom: 1px solid red;
37   font-weight: bold;
38   font-size: 28rpx;
39 }
40
41 .show {
42   display: block;
43   flex: 1;
44 }
45
46 .hidden {
47   display: none;
48   flex: 1;
49 }

js

 1 //index.js
 2 //获取应用实例
 3 let app = getApp()
 4 Page({
 5   data: {
 6     currentTab: 0,
 7     tabArray: ["tab1", "tab2", "tab3", "tab4"]
 8   },
 9   //事件处理函数
10   bindChange: function(e) {
11     let that = this;
12     that.setData({
13       currentTab: e.detail.current
14     });
15   },
16   swichNav: function(e) {
17     let that = this;
18     if (this.data.currentTab === e.target.dataset.current) {
19       return false;
20     } else {
21       that.setData({
22         currentTab: e.target.dataset.current
23       })
24     }
25   },
26   onLoad: function() {
27     let that = this
28
29     app.getUserInfo(function(userInfo) {
30
31       that.setData({
32         userInfo: userInfo
33       })
34     })
35   }
36 })

原文地址:https://www.cnblogs.com/cisum/p/9482085.html

时间: 2024-08-27 15:17:31

微信小程序 - 自定义tabbar的相关文章

值得记录的(五)- 微信小程序自定义 tabbar

一定的需求情况下,无法使用小程序原生的 tabbar 的时候,需要自行实现一个和 tabbar 功能一模一样的自制组件. 查阅了海量的博客和文档之后,亲自踩坑.总结了三种在不使用微信小程序原生 tabbar的情况下自制 tabbar 的方法.并说说这几种方法各自的特色. 类 navigator 跳转方式 类 navigator 跳转方式是我自己起的名称,因为它的实现思路就是这个样子的.期初参考 微信小程序自定义tabBar组件开发 这篇博文的思路.进行了这种方式的尝试,并为后续提供了解决思路.在

微信小程序自定义tabbar的问题

个人感觉小程序的tab样式自定义的能力有所欠缺,不够美观,于是今天自己diy了一个tab 测试的时候发现,无论是使用navigator跳转(会出现点击的效果)还是用bindtap(触摸),因为没有定义tabbar, 跳转的方式都只能是页面重定向的,导致tab页上的ABCD互相跳转的时候,每次都会重新渲染视图,由此带来的 视觉效果很不好,没有系统tabbar跳转地自然,万般无奈之下,只好用回系统自带的tabbar. 如果你有好的方法能够解决自定义tabbar跳转重新渲染的问题,烦请告知,在此谢过!

微信小程序自定义tabBar和遇到的一些问题

第一步 在app.json文件找到“tarBar”对象,然后添加一个属性,代码如下: "tabBar": { "custom": true, //添加这个属性 "color": "#707070", "selectedColor": "#00c4cc", "list": [ { "pagePath": "pages/home/index&

微信小程序-自定义底部导航

代码地址如下:http://www.demodashi.com/demo/14258.html 一.前期准备工作 软件环境:微信开发者工具 官方下载地址:https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/download.html 1.基本需求. 实现用户自定义底部导航 2.案例目录结构 二.程序实现具体步骤 1.自定义nav.wxml代码 <template name="nav"> <view class=&quo

微信小程序自定义弹窗wcPop插件|仿微信弹窗样式

微信小程序自定义组件弹窗wcPop|小程序消息提示框|toast自定义模板弹窗 平时在开发小程序的时候,弹窗应用场景还是蛮广泛的,但是微信官方提供的弹窗比较有局限性,不能自定义修改.这个时候首先想到的是自定义组件化开发,就是把弹出框封装成一个组件,然后多处调用. 解决了小程序开发自定义弹窗出现后,遮罩层下的页面仍可以滚动的方法: 给遮罩层的最外层view中加入catchtouchmove="preventTouchMove" 即可解决该遮罩层点透问题. 根据需要还可以自定义多个按钮及事

微信小程序自定义导航栏(wx_custom_navigation_bar) 自定义返回键、首页键,动态设置标题,响应式组件

微信小程序自定义导航栏 navigation bar 返回键 首页 github: https://github.com/chen-yt/wx_custom_navigation_bar https://github.com/Superman2113/wx_custom_navigation_bar 代码 navbar组件 navbar.wxml <view class="navbar" style="{{'height: ' + navigationBarHeight

微信小程序-自定义QQ版下拉刷新

最近给别个公司做技术支持,要实现微信小程序上拉刷新与下拉加载更多 微信给出的接口不怎么友好,最终想实现效果类似QQ手机版 ,一共3种下拉刷新状态变化,文字+图片+背景颜色 最终实现后的效果(这里提示有个不同点就是,自定义了导航条,并且下拉的时候,自定义导航条必须固定) 小程序实现下拉加载2种方式: 1. 简单粗暴,直接开启enablePullDownRefresh,开启全局下拉刷新 2.利用scroll-view组件 简单分析下2种方式的利与弊 enablePullDownRefresh方式 优

微信小程序 自定义标题栏

微信小程序可以设置自定义标题栏,可以针对不同页面单独设置1. 在页面文件 .json 文件中,设置如下属性,自定义导航栏 和 导航栏样式"navigationStyle": "custom","navigationBarTextStyle": "white", 特别是第二个 navigationBarTextStyle 属性 可以将胶囊样式调整为透明效果 2. 设置自定义导航栏布局 样式 动效逻辑等 3. 划重点!!!导航栏中

微信小程序自定义组件的使用以及调用自定义组件中的方法

在写小程序的时候,有时候页面的内容过多,逻辑比较复杂,如果全部都写在一个页面的话,会比较繁杂,代码可读性比较差,也不易于后期代码维护,这时候可以把里面某部分功能抽出来,单独封装为一个组件,也就是通常说的自定义组件,自定义组件类似于页面,它有wxml 模版.wxss 样式和js文件,然后在页面中使用该自定义组件即可. 例如,我的自定义组件代码结构是这样的: myComponent文件就是我所创的自定义组件,myComponent.wxml文件代码为: <view class="inner&q