小程序自定义底部tab

首页wxml的代码:

 <view class="nav" hover-class="none">
    <view class="index" bindtap="fresh">
      <image class="navbottomicon" src="{{homeOr?srcactive :src}}"></image>
      <text class="nav-tex" style="color:{{homeOr?srcactivecolor:srccolor}};">放心试</text>
    </view>
    <view class="index" bindtap="toList" data-url="https://www.fishqc.com/cn/m/report-list#program">
      <image class="navbottomicon" src="{{listOr?listactive :list}}"></image>
      <text class="nav-tex" style="color:{{listOr?listactivecolor:listcolor}};">榜单</text>
    </view>
    <view class="index" bindtap="jumpown">
      <image style="border-radius: 50%;overflow: hidden;border:1px solid #f6f6f6;box-sizing: border-box;" class="navbottomicon"
        src="{{islogin ? Headimg :own}}"></image>
      <text class="nav-tex">我的</text>
    </view>
  </view>

首页的css代码

.nav{
    position:fixed;
    bottom:0;
    width:100%;
    height:45px;
    line-height:45px;
    border-top:1px solid #ddd;
    background-color:#fff;
    display:flex;
    z-index:3;

}

.nav .index{
    height:100%;
    line-height:100%;
    text-align:center;
    color:#000;
    display:inline-block;
    font-size:10px;
    width:50%;
    float:left;
}
.nav .index:active{
    background:none;
}
.nav .active{
    color:#64c8bc;
}
.nav .navbottomicon{
    width:20px;
    height: 20px;
    margin-top: 5px;
}
.nav .nav-tex{
    display:block;
    line-height:20px;
}

首页的js代码

//index.js
//获取应用实例
const app = getApp()

Page({
  data: {
    motto: '首页',
    mainColor: '#91d8d2',
    oldcolor: 'grey',
    //点击下面的tab
    homeOr: true,
    src: '/pages/images/try.png',
    srcactive: '/pages/images/try-active.png',
    listOr: false,//榜单
    listactive: '/pages/images/m-ranking-active.png',
    list: '/pages/images/m-ranking.png',
    islogin: false,
    own: '/pages/images/own.png',
    Headimg: '/pages/images/own-active.png'

  },
  currentSelect: {},
  onLoad: function () {
     this.setData({
       'currentSelect.key': 'current'
     })
  },
  hello:function (){
    app.toasttips('关注成功', 'true')
  },
  toList:function () {
    wx.navigateTo({
      url: '../logs/logs'
    })
  },
  jumpown:function(){
    wx.navigateTo({
      url: '../person/person'
    })
  }
})

跳转到logs页面的wxml的代码

<view class="container">
    到了logs页面
    <view class="nav" hover-class="none">
        <view class="index" bindtap="fresh">
          <image class="navbottomicon" src="{{homeOr?srcactive :src}}"></image>
          <text class="nav-tex" style="color:{{homeOr?srcactivecolor:srccolor}};">放心试</text>
        </view>
        <view class="index" bindtap="toList" data-url="https://www.fishqc.com/cn/m/report-list#program">
          <image class="navbottomicon" src="{{listOr?listactive :list}}"></image>
          <text class="nav-tex" style="color:{{listOr?listactivecolor:listcolor}};">榜单</text>
        </view>
        <view class="index" bindtap="jumpown">
          <image style="border-radius: 50%;overflow: hidden;border:1px solid #f6f6f6;box-sizing: border-box;" class="navbottomicon"
            src="{{islogin ? Headimg :own}}"></image>
          <text class="nav-tex">我的</text>
        </view>
      </view>
</view>

js代码

//logs.js
const util = require('../../utils/util.js')

Page({
  data: {
    logs: [],
    details:'我不是首页',
    // 点击下面
    srcactivecolor: '#64c8bc',
    homeOr: false,
    src: '/pages/images/try.png',
    srcactive: '/pages/images/try-active.png',
    listOr: true,//榜单
    listactive: '/pages/images/m-ranking-active.png',
    list: '/pages/images/m-ranking.png',
    islogin: false,
    own: '/pages/images/own.png',
    Headimg: '/pages/images/own-active.png'
    // tabbar

  },
  onLoad: function (option) {
    this.setData({
      logs: this.data.details
    })
    console.log(111, wx.getStorageSync('bringSome'))  

  },
  fresh:function (){
    wx.navigateTo({
      url: '../index/index'
    })
  },
  jumpown: function () {
    wx.navigateTo({
      url: '../person/person'
    })
  }

})

css代码

.nav{
    position:fixed;
    bottom:0;
    width:100%;
    height:45px;
    line-height:45px;
    border-top:1px solid #ddd;
    background-color:#fff;
    display:flex;
    z-index:3;
    left:0;
}

.nav .index{
    height:100%;
    line-height:100%;
    text-align:center;
    color:#000;
    display:inline-block;
    font-size:10px;
    width:50%;
    float:left;
}
.nav .index:active{
    background:none;
}
.nav .active{
    color:#64c8bc;
}
.nav .navbottomicon{
    width:20px;
    height: 20px;
    margin-top: 5px;
}
.nav .nav-tex{
    display:block;
    line-height:20px;
}

因为我你看到第一个gif我把三个页面的tab都是一样的 ,所以里面的代码大同小异,还有你在样式里多加一个tab和少加一个都是可以的哈~~~样式不会乱.
小程序里面有tabbar,但是大多数是自定义的,记住自己写的不用wx.switchTab啦,哦哦,还有就是我的图是本地的,你顺着图的路径自己上一张就好了
注意保护眼睛,乖 -_-

原文地址:https://www.cnblogs.com/antyhouse/p/9407257.html

时间: 2024-08-30 12:06:58

小程序自定义底部tab的相关文章

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

代码地址如下: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

再谈小程序自定义底部导航

小程序自定义tabBar再探索 前言 最近有很多微信开发者朋友在QQ上加我好友,忽然意识到大家对微信自定义底部导航栏需求还是挺大的,故而再次整理下底部导航栏组件开发思路.和之前的文章还是有些区别,并且底部导航栏组件增加新的特性以及一些优化开发体验的骚操作. 技术选型 与之前不同,现在我们有两种方法实现自定义底部导航栏,因为小程序在2.5.0开始支持自定义底部导航栏了戳此处看文档,所以我们现在的可选方案为: 通过HideTabBar接口hack底部导航栏 通过小程序支持配置实现底部导航栏 下面根据

小程序自定义底部导航

这个方法比较简单,虽然有一些延迟,但也算是解决了一半自定义的问题. 首先在pages同级目录下创建tabbar.wxml文件, <template name="tabBar"> <view class="tab-bar" style="color: {{tabBar.color}}; background: {{tarBar.backgroundColor}}; {{tabBar.position=='top'? 'top: 0' : '

小程序自定义单页面、全局导航栏

摘要: 小程序开发技巧. 作者:小白 原文:小程序自定义单页面.全局导航栏 Fundebug经授权转载,版权归原作者所有. 需求 产品说小程序返回到首页不太方便,想添加返回首页按钮,UI说导航栏能不能设置背景图片,因为那样设计挺好看的. 需求分析并制定方案 这产品和UI都提需求了,咱也不能反驳哈,所以开始调研,分析可行性方案:1.可以添加悬浮按钮.2.自定义导航栏. 添加悬浮按钮,是看起来是比较简单哈,但是感觉不太优雅,会占据页面的空间,体验也不太好.所以想了下第二种方案,自定义导航栏既可以实现

小程序“自定义关键词”功能的常见问答

我们知道小程序可以通过线下扫码.公众号.好友分享.长按小程序码.搜索小程序名称来找到,现在又多了一个新方式——小程序后台新增自定义关键词功能:已发布小程序的开发者,可提交最多10个与小程序业务相关的关键词,帮助你的小程序更好地被发现. (登陆小程序后台——点击左侧“推广”添加关键词) 自定义关键词搜索策略将于6月9日生效.届时,用户可以通过搜索关键词,找到相关的小程序.小程序的关键词每个月可以修改三次. 开发者还可在后台看到关键词推广效果. 我们希望通过“自定义关键词”功能,帮助用户在微信内更便

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

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

使用wepy开发微信小程序的底部导航

前言: 最近公司在做一个微信小程序的项目,用的是类似于vue的wepy框架.我也借此机会学习和实践一下. 小程序官方文档:https://developers.weixin.qq.com/miniprogram/dev/ wepy官方文档:https://tencent.github.io/wepy/document.html#/ wepy小程序项目初始化:wepy小程序入门之项目初始化 今天的目标是开发微信小程序的底部导航 效果图: 1.打开编辑器(我用的是vscode),然后打开微信开发者工

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

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

小程序自定义多选按钮 给后台传值方法

小程序自定义多选按钮 1.html部分 <checkbox-group bindchange="checkboxChange" class = "flex"> <label class="checkbox {{item.checked?'active':''}}" wx:for="{{items}}" bindtap="addclass" data-index="{{index}