本文实例为大家分享了微信小程序自定义状态栏的具体代码,供大家参考,具体内容如下

首先我们需要在json文件中修改一下配置。如果我们只需要在一个页面使用自定义状态栏,我们可以在这个页面的json文件中修改;如果所有页面都需要使用,我们直接在app.json中修改。

"navigationStyle": "custom",

wxml:

<view class="bgcItem" style="height:{{sumHeight}};">
    <view class="head" style="height:{{headHeight}};top:{{headTop}}">
      <image src="../../static/image/adress.png"></image>
      <view>{{appname}}</view>
    </view>
</view>

wxss:

.bgcItem{
  top: 0rpx;
  background-color: #fff;
  position: fixed;
  width: 100%;
  z-index: 999;
}
.head{
  display: flex;
  justify-content: flex-start;
  align-items: center;
  width: 100%;
  height: 130rpx;
  text-align: center;
  position: fixed;
  top: 0rpx;
  left: 0;
  z-index: 999;
  background-color: #fff;
}
 
.head>image {
  width: 24rpx;
  height: 24rpx;
  margin-left: 30rpx;
}
 
.head>view {
  font-size: 28rpx;
  color: #1a1a1a;
  margin-left: 8rpx;
  height: 100%;
  display: flex;
  justify-content: flex-start;
  align-items: center;
}

wx.getSystemInfo是获取系统信息的API

wx.getSystemInfo({
    success(res) {
      // res是设备信息
      // menuButton是右边胶囊按钮的信息
      let menuButton = wx.getMenuButtonBoundingClientRect()
      let titleBarHeight = (menuButton.top - res.statusBarHeight) * 2   menuButton.height 
      this.setData({
      headHeight: titleBarHeight * 2   'rpx',
      headTop: res.statusBarHeight * 2   'rpx',
      sumHeight: titleBarHeight * 2   res.statusBarHeight * 2   'rpx'
       })
     }
  })

图片中的(1)是menuButton.top

图片中的(2)是res.statusBarHeight

那我们求(3)怎么算呢?  是不是(1) - (2)呢? 

即menuButton.top - res.statusBarHeight;那为什么乘2呢? 是不是胶囊按钮下面还有一段距离,   也就是和(3)相等的距离,所以乘2。

既然我们把(3)求出来了,那我们想得到什么值就得到什么值了。

比如求整体的高度就是:(menuButton.top - res.statusBarHeight) * 2 menuButton.height res.statusBarHeight。

我们也可以把上面的代码写在app.js的onLaunch函数中

// 当小程序初始化完成时,会触发 onLaunch(全局只触发一次)
 onLaunch: function () {
   wx.getSystemInfo({
     success(res) {
       // res是设备信息
       // menuButton是右边胶囊按钮的信息
       let menuButton = wx.getMenuButtonBoundingClientRect()
       let titleBarHeight = (menuButton.top - res.statusBarHeight) * 2   menuButton.height 
         res.statusBarHeight
       this.globalData.titleBarHeight = titleBarHeight
      }
    })
  },

我们可以将计算好的值存在globalData中,globalData是在app.js中定义。

我们在小程序初始化的时候计算好,并且将值也存在了globalData中,在其他页面使用的时候我们可以直接写

var App = getApp();
onLoad: function (options) {
    this.setData({
      titleBarHeight: App.globalData.titleBarHeight
    })
 },

那么titleBarHeight就是我们计算好的值,我们可以直接使用了。 

还有一种不需要使用自定义状态栏的,我们只想修改状态栏的颜色,那这个是很简单的。我们可以直接在json里写上

"navigationBarTitleText": "首页",
"navigationBarTextStyle": "white",
"navigationBarBackgroundColor": "#ff00ff"

效果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持Devmax。

微信小程序自定义状态栏的更多相关文章

  1. 微信小程序之html5 canvas绘图并保存到系统相册

    这篇文章主要介绍了微信小程序之html5 canvas绘图并保存到系统相册,需要的朋友可以参考下

  2. 使用UINavigationController进行iOS 7自定义当前转换

    解决方法我有同样的问题,并解决了在设置此框架之前将toViewController添加到容器.反转如下的行:

  3. iOS – UINavigationController,隐藏navigationBar

    快速以及obj-c的答案非常受欢迎编辑:我试过以下各种版本,问题依然存在–.-编辑2:打印:在viewDidLoad返回20之后解决方法更新:只需在ViewDidLoad方法中添加它即可

  4. ios – TabBarController上的彩色状态栏,导航栏无法正常工作

    我在这里阅读了很多帖子,并尝试了大多数提到的选项,但没有人为我解决问题.我有一个基于标签栏控制器的应用程序.每个选项卡都是一个UIViewController,顶部有一个导航栏.将此代码添加到AppDelegate为我提供了带有白色文本的橙色导航栏,但是带有黑色文本的白色状态栏.阅读各种页面上的答案建议将以下内容添加到View控制器:然后在ViewDidLoad中调用它:这让我得到一个带有白色文本的白色状态栏,我现在如何让状态栏变为橙色以匹配我的导航栏?

  5. ios – 状态栏大小错误,包含UINavigationController

    这是你永远不应该做的事情.只需将这些行添加到您的代码中:现在导航控制器的视图有一个框架,并相对于其超视图维护它.

  6. ios – 导航工具栏从全屏视频返回后垂直延伸

    第一个屏幕截图是在全屏播放视频之前拍摄的.第二个是在视频全屏打开并关闭后拍摄的.知道为什么导航工具栏有扩展吗?注意:汉堡包按钮不是导航项目的一部分.它在父级的覆盖中伪造,将其子控制器保存在标准容器中.源内没有什么特别之处:更新:这似乎仅在最新版本的iOS9.3上存在问题解决方法从截图中看,状态栏的高度看起来会加倍.试试这个:-在播放视频之前,请隐藏状态栏结束视频后,显示状态栏

  7. ios – 工具栏reappers后,状态栏出现在QLPreviewController中

    状态栏最初隐藏在Info.plist中,“状态栏最初隐藏”设置为YES,“查看基于控制器的状态栏外观”设置为NO.但是当我呈现一个QlPreviewController时,经过两次点击文件使工具栏消失并再次出现,状态栏也出现在应用程序中.知道如何防止这种情况发生吗?解决方法在Info.plist文件中,将UIViewControllerBasedStatusBarappearance设置为true

  8. ios – 更改状态栏alpha

    在Snapchat应用程序中,当拖动表格视图以重新加载时,状态栏会更改alpha.这是正常的状态栏这是拖动表视图时发生的情况状态栏alpha如何更改?最初我认为这是一个快照,但时钟正常变化.解决方法这应该是淡入淡出动画的技巧:您还可以设置statusBarWindow的框架并根据需要移动它.玩得开心;]

  9. Snapchat更新状态栏iOS7更新

    您无法从该屏幕捕获方法访问或动画UIImage,因此尽管您可以移动/裁剪该屏幕截图,但您无法更改其外观.所以…

  10. ios – 隐藏在iPad上运行的iPhone应用程序的状态栏

    我的iPhone应用程序要求状态栏始终被隐藏.这通常很容易做到,如果我只在iPhone上运行应用程序,它可以工作.但是,如果我在iPad上运行应用程序,状态栏仍然显示在内容的顶部.那么,如果我的iPhone专用应用程序正在运行,我如何确保状态栏是隐藏的?

随机推荐

  1. js中‘!.’是什么意思

  2. Vue如何指定不编译的文件夹和favicon.ico

    这篇文章主要介绍了Vue如何指定不编译的文件夹和favicon.ico,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  3. 基于JavaScript编写一个图片转PDF转换器

    本文为大家介绍了一个简单的 JavaScript 项目,可以将图片转换为 PDF 文件。你可以从本地选择任何一张图片,只需点击一下即可将其转换为 PDF 文件,感兴趣的可以动手尝试一下

  4. jquery点赞功能实现代码 点个赞吧!

    点赞功能很多地方都会出现,如何实现爱心点赞功能,这篇文章主要为大家详细介绍了jquery点赞功能实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  5. AngularJs上传前预览图片的实例代码

    使用AngularJs进行开发,在项目中,经常会遇到上传图片后,需在一旁预览图片内容,怎么实现这样的功能呢?今天小编给大家分享AugularJs上传前预览图片的实现代码,需要的朋友参考下吧

  6. JavaScript面向对象编程入门教程

    这篇文章主要介绍了JavaScript面向对象编程的相关概念,例如类、对象、属性、方法等面向对象的术语,并以实例讲解各种术语的使用,非常好的一篇面向对象入门教程,其它语言也可以参考哦

  7. jQuery中的通配符选择器使用总结

    通配符在控制input标签时相当好用,这里简单进行了jQuery中的通配符选择器使用总结,需要的朋友可以参考下

  8. javascript 动态调整图片尺寸实现代码

    在自己的网站上更新文章时一个比较常见的问题是:文章插图太宽,使整个网页都变形了。如果对每个插图都先进行缩放再插入的话,太麻烦了。

  9. jquery ajaxfileupload异步上传插件

    这篇文章主要为大家详细介绍了jquery ajaxfileupload异步上传插件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. React学习之受控组件与数据共享实例分析

    这篇文章主要介绍了React学习之受控组件与数据共享,结合实例形式分析了React受控组件与组件间数据共享相关原理与使用技巧,需要的朋友可以参考下

返回
顶部