微信小程序端自定义头部导航栏

  • 自定义导航栏代码

  • 个人中心将手机号等信息用“小眼睛”开关来展示手机号显示和带**的半隐藏

自定义导航栏代码

app.json文件

 "window": {
    "backgroundTextStyle": "light",
    "navigationBarBackgroundColor": "#fff",
    "navigationBarTitleText": "wechatname",
    "navigationBarTextStyle": "black",
    "navigationStyle": "default"        重点是添加这一行代码语句!!!!!
  },

index.json文件

{
  "navigationStyle":"custom",  重点是添加这一代码语句!!!!
  "component": true,
  "usingComponents": {}
}

app.js文件


 onLaunch: function () {
    wx.getSystemInfo({
      success: res => {
        let custom = wx.getMenuButtonBoundingClientRect();//菜单按钮
        let systemInfo = wx.getSystemInfoSync();
        this.globalData.custom = custom;
        this.globalData.customBar = custom.height;
        this.globalData.statusBar = custom.top;
        this.globalData.navBarHeight = (custom.top - systemInfo.statusBarHeight) * 2 + custom.height + systemInfo.statusBarHeight;
      }
    })
}

index.wxml

<view class="navbar" style="height:{{navBarHeight}}px;">
  <view class="navbar__wrapper" style="margin-top: {{statusBar}}px;">
  <view class="duiqi">  

<!--
在此处的 <view>容器里面 添加你要在头部导航栏里所用的模块
我在这里添加的搜索栏

    <van-search
  value="{{ value }}"
  input-align="center"
  placeholder="请输入搜索关键词"
/>

//注意:在此声明----仅用于展示 上面的搜索栏样式 我没有去调试布局,具体根据你自己情况而定

-->
    



</view>

  </view>
</view>
<view class="content" style="margin-top:{{navBarHeight}}px;"></view>

index.css


 /* 最顶部的手机烂的样式(你手机显示“时间”“电量”的拿一小块导航栏)*/
.navbar {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  width: 100%;
  background:  /*这里是你导航栏背景颜色,自己可以配制自己喜欢的颜色 */
  z-index: 10;
}

 /* 下面的胶囊栏的样式(就是那 三个并排小黑点和一个大圆圈包裹一个实心小圆圈的那个位置)*/
.navbar__wrapper {
  background:/*这里是你导航栏背景颜色,自己可以配制自己喜欢的颜色 */
  width: 100%;
  height: 89rpx;
  display: flex;
  justify-content: space-between;
  align-items: center;
  box-sizing: border-box;
}

index.js


const app=getApp()
Page({

data: {
      statusBar: app.globalData.statusBar,
      customBar: app.globalData.customBar,
      navBarHeight: app.globalData.navBarHeight,
  },

})

图片成果演示:

baca92163a976f55dc81cc59efe6b635.png

手机号信息用小眼睛按钮显示隐藏

个人中心页面

<view class="mydata">
        <view>

          <view class="myname">
            <van-icon color="#f2efbf" name="user-circle-o" />
            <text>{{name}}</text>
          </view>


          <view class="myphone" bindtap="eyecilck">
            <text>{{eyephone}}</text>
            <van-icon style="padding: 0.8rem;" name="{{eyeType? CeyeName:OeyeName}}" />
          </view>
    </view>
</view>

个人中心.js


const app = getApp();
let regx = /(1[3|4|5|7|8][\d]{9}|0[\d]{2,3}-[\d]{7,8}|400[-]?[\d]{3}[-]?[\d]{4})/g;
Component({
  /**
   * 组件的属性列表
   */
  properties: {
    

  },

  /**
   * 组件的初始数据
   */
  data: {
      CeyeName:"closed-eye",
      OeyeName:"eye-o",
      eyeType:true,
      eyephone:"",

    name:"L_Augety",
    phone:"17543212300",

    }
/**
   * 组件的方法列表
   */
  methods: {
       eyecilck(){
      if(this.data.eyeType ==true){
        this.setData({
          eyeType:false,
          eyephone:this.data.phone

        })
      }else{
        this.setData({
          eyeType:true,
          eyephone:this.matchPhoneNum(this.data.phone,regx)
        })
      }

    },




 onShow(){
      let regx = /(1[3|4|5|7|8][\d]{9}|0[\d]{2,3}-[\d]{7,8}|400[-]?[\d]{3}[-]?[\d]{4})/g;
      this.setData({
        eyephone: this.matchPhoneNum(this.data.phone,regx)
      })
    },
    matchPhoneNum(str,regx){
      var phoneNums = str.match(regx);
      if(phoneNums){
          for(var i= 0;i<phoneNums.length;i++){
              var temp  = phoneNums[i]
              temp = temp.replace(/^(\d{3})\d{4}(\d{4})$/,"$1****$2");
              str = str.replace(phoneNums[i],temp);
          }
      }
      return str;
  }
    


    }

})

成果展示:

点击前:

3eda18a6e3016c10353d8b58e9c0b8d9.png

点击后:

c1046c9bf313212243405ed5333f0dfd.png

 

最后

  • 我用的是vant组件库,其中小图标(比如:上面的“小眼睛”图标)等组件需要自己去配置,有什么问题可以私信或评论区留言给我,三克油~~~

  • 另外,有一些css布局样式需要自己去调整,我只在此展示重要的部分~~~

 

 

微信小程序中可以通过自定义导航栏实现更加个性化的界面设计。以下是一个简单的实现步骤: 1. 在 app.json 文件中设置 "navigationStyle": "custom",表示使用自定义导航栏。 2. 在页面的 WXML 文件中编写自定义导航栏的 HTML 代码,例如: ``` <view class="navbar"> <view class="navbar-title">自定义导航栏</view> </view> ``` 其中,navbar 表示导航栏的样式,navbar-title 表示标题的样式,可以根据需要进行自定义。 3. 在页面的 wxss 文件中设置导航栏的样式,例如: ``` .navbar { height: 44px; background-color: #fff; border-bottom: 1px solid #ccc; display: flex; align-items: center; justify-content: center; } .navbar-title { font-size: 18px; font-weight: bold; color: #000; } ``` 其中,height 表示导航栏的高度,background-color 表示导航栏的背景颜色,border-bottom 表示导航栏底部的边框线,display、align-items 和 justify-content 表示导航栏标题的布局方式,navbar-title 表示标题的样式,可以根据需要进行自定义。 4. 在页面的 JS 文件中设置导航栏的返回按钮,例如: ``` wx.showModal({ title: '提示', content: '确认返回上一页?', success: function (res) { if (res.confirm) { wx.navigateBack({ delta: 1 }) } } }) ``` 其中,wx.showModal 表示显示一个模态框,title 表示模态框的标题,content 表示模态框的内容,success 表示点击确定按钮后执行的回调函数,wx.navigateBack 表示返回上一页。 通过以上步骤,就可以实现微信小程序自定义导航栏
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

L_Augety

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值