在小程序开发的时候会遇到一些页面不需要头部导航,或像淘宝的商品详情一样自定义的导航栏。那先要清楚这导航可不能写死,每种手机的导航都各不相同。

一、在app.jsonwindow对象中定义导航的样式:

"window":{
"navigationStyle": "custom"
},

这样你会发现所有页面的导航栏都不见了。如果还有其他页面需要导航栏的,那就模仿小程序的导航栏按照以下步骤。
二、首先要在app.jsonLaunch方法里面获取手机状态栏高度,全局定义导航高度navHeight

// 获取手机系统信息
wx.getSystemInfo({
success: res => {
//导航高度
this.globalData.navHeight = res.statusBarHeight + 46;
}, fail(err) {
console.log(err);
}
})

注意!!!全局定义导航高度navHeight!!!
我发现很多人会遇到navHeightundefined这个问题。在这里说明一下,这个navHeight需要在app.json里面定义好:

globalData: {
userInfo: null,
navHeight: 0
}

三、在需要导航的 页面Page拿到全局变量导航高度:

const App = getApp();
Page({
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
this.setData({
navH: App.globalData.navHeight
})
},
})

四、页面展示:

<view>
<view class='nav bg-white' style='height:{{navH}}px'>
<view class='nav-title'>
首页
<image src='../../images/back.png' mode='aspectFit' class='back' bindtap='navBack'></image>
</view>
</view>
<scroll-view class='bg-gray overflow' style='height:calc(100vh - {{navH}}px)' scroll-y >
<view class='hidden'>
<!-- 正文 -->
</view>
</scroll-view>
</view>

五、附上样式,可以写在app.wxss

.nav{
width: 100%;
overflow: hidden;
position: relative;
top:;
left:;
z-index:;
}
.nav-title{
width: 100%;
height: 45px;
line-height: 45px;
text-align: center;
position: absolute;
bottom:;
left:;
z-index:;
font-family:PingFang-SC-Medium;
font-size:36rpx;
letter-spacing:2px;
}
.nav .back{
width: 22px;
height: 22px;
position: absolute;
bottom:;
left:;
padding: 10px 15px;
}
.bg-white{
background-color: #ffffff;
}
.bg-gray{
background-color: #f7f7f7;
}
.overflow{
overflow: auto;
}
.hidden{
overflow: hidden;
}

转: https://www.jianshu.com/p/5753a0e1754f

微信小程序:自定义导航栏的更多相关文章

  1. 微信小程序——自定义导航栏

    微信头部导航栏可能通过json配置: 但是有时候我们项目需求可能需要自定义头部导航栏,如下图所示: 现在具体说一下实现步骤及方法: 步骤: 1.在 app.json 里面把 "navigat ...

  2. 微信小程序自定义导航栏组件,完美适配所有手机,可实现各种功能和情况

    背景 在做小程序时,关于默认导航栏,我们遇到了以下的问题: Android.IOS 手机对于页面 title 的展示不一致,安卓 title 的显示不居中 页面的 title 只支持纯文本级别的样式控 ...

  3. 微信小程序自定义导航栏

    微信小程序需要自定义导航栏,特别是左上角的自定义设置,可以设置返回按钮,菜单按钮,配置如下: 1.在app.json的window属性中增加: navigationStyle:custom 顶部导航栏 ...

  4. 微信小程序自定义导航栏组件

    1.首先,要在json文件中设置为自定义的形式 "navigationStyle": "custom" 2.计算相关值 导航栏分为状态栏和标题栏,只要能算出每台 ...

  5. 微信小程序 - 自定义导航栏(提示)

    点击下载: 自定义导航栏示例

  6. 获取不同机型微信小程序状态栏+导航栏高度

    获取不同机型微信小程序状态栏+导航栏高度 一. 前言 很多时候我们开发微信小程序,都需要先知道状态栏和导航栏的高度,才能去做其他功能 二. 获取微信小程序状态栏高度 用wx.getSystemInfo ...

  7. 微信小程序 自定义导航组件 nav头部 全面屏设计

    nav-dynamic 微信小程序自定义nav头部组件:适配全面屏设计: 实现功能 初始进入页面时,展示初始状态下的nav样式: 页面滚动时,监听页面滚动事件,展示滚动状态下的nav样式: 根据配置字 ...

  8. Taro 小程序 自定义导航栏

    在小程序中,有的页面需求可能需要我们做一个自定义的导航栏, 今天就来踩一踩坑 首先需要在app.js 中给全局的导航栏隐藏, // app.js window: { navigationStyle: ...

  9. 微信小程序底部导航栏部署

    在微信小程序开发app.json(app.json它是定义全局页面) 只是用来部署微信底部的图标,最多不能大于五个 "tabBar":{ "selectedColor&q ...

  10. 微信小程序底部导航栏(tabbar)

    在app.json处设置“tabBar”,例子如下: { "pages": [ "pages/index/index", "pages/pages1/ ...

随机推荐

  1. windows系统Android-sdk的下载与环境变量配置

    最近一段时间在做app的开发,作为前端而言,开发app并不像android工程师那样熟悉android开发:无论是使用cordova.js或者react-native开发都需要配置android开发环 ...

  2. py-2 python介绍与安装

    一.python介绍 1.python背景 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,Guido开始写能够解释Python语言语法的解释器.Py ...

  3. Linux系统硬链接和软链接说明 - 运维笔记

    在linux系统中有种文件是链接文件,可以用来解决文件的共享使用.链接的方式可以分为两种,一种是硬链接(Hard Link),另一种是软链接或者也称为符号链接(Symbolic Link).先来查看下 ...

  4. 1.利用BeanMap进行对象与Map的相互转换

    javabean与map的转换有很多种方式,比如: 1.通过ObjectMapper先将bean转换为json,再将json转换为map,但是这种方法比较绕,且效率很低,经测试,循环转换10000个b ...

  5. C#开发Office程序

    标题:Office 解决方案开发概述 (VSTO) 地址:https://docs.microsoft.com/zh-cn/visualstudio/vsto/office-solutions-dev ...

  6. two pointers 思想

    针对有序的序列特性做出的优化思想

  7. VGridControl 使用技巧

    1. 让列的宽度自动填充 如果VGridControl的LayoutStyle属性为BandsView或SingleRecordView,那么把VGridControl的OptionsView.Aut ...

  8. .NET Core 调试出现“应用程序处于中断模式”

    今天再看博客园的大神博客,按照例子写了一个文件读写的示例(对 .NET Core FileProvider 的应用). 在调试的时候出现了“应用程序处于中断模式”的问题,继续的话程序并没有向下执行,看 ...

  9. 0017SpringBoot注册Servlet三大组件(Servlet、Filter、Listener)

    由于SpringBoot默认是以jar包的形式启动嵌入式servlet容器来启动SpringBoot的web应用,所以没有web.xml文件,那么如何配置Servlet.Filter.Listener ...

  10. 使一个div元素上下左右居中

    第一种方法 浮动流自我调节 .box{ widht:200px; height:200px; position:relative; } .box .son{ width:100px; height:1 ...