zoukankan      html  css  js  c++  java
  • uniapp顶部导航栏自定义以及状态栏

    下面是一个简单的状态栏和自定义导航标题栏的设置,可以放入HBuilder X 的uniapp项目内查看,

    style部分是没有使用scss和lass的,

    <template>
    <view>
    <view class="StatusBarTop" :style="{'height':StatusBarHeight}"></view>
    <!-- 顶部的状态栏,不应该放入信息,仅用于占位 -->
    
    <view class="TitleBarStance" tits="站位块" :style="{'height':TitleBarHeight,'padding-top':StatusBarHeight}" ></view>
    <!-- 占位块元素,仅用来占据位置,内部也不应该放入信息,因为状态栏与导航标题栏都是fiexd定位,
    所以需要它占据一定的位置,方便下面的正文正常显示, -->
    
    <view class="TitleBarTop" :style="{'height':TitleBarHeight,'padding-top':StatusBarHeight}">
    <!-- 自定义导航栏,可以根据需要在其内部放入自己需要的样式等 -->
    <!-- 以下三个view为简洁标题导航栏的样式 -->
    <view class="TitleBarTopLeft">
    <!-- 左边的一般为返回按钮或者返回主页,可以自己在 methods 内添加方法决定此处用法,此处放置的是图片,可修改 -->
    <image src="../../static/img/back.png" mode="" ></image>
    </view>
    <view class="TitleBarTopMiddle">
    <!-- 导航标题栏的正中位置显示内容 -->
    <text>世界你好</text>
    </view>
    <view class="StatusBarTopRight">
    <!-- 右侧的,一般为空,用来方便flex布局,而且小程序一般右边自带胶囊按钮会处于这个位置 -->
    </view>
    </view>
    
    
    
    
    <view class="mainBody">
    
    </view>
    </view>
    </template>
    
    <script>
    export default {
    data() {
    return {
    
    StatusBarHeight:0,
    // 状态栏的高度
    
    TitleBarHeight:0,
    // 导航标题栏的高度
    
    };
    },
    onLoad:function() {
    // 在进入页面时就应该获取到设备的状态栏高度,所以使用onload
    
    let that=this;
    // 设置this指向,避免出现问题
    
    uni.getSystemInfo({
    // uniapp提供的判断平台的api,具体参考:https://uniapp.dcloud.io/api/system/info?id=getsysteminfo
    
    success:function(res){
    // 调用成功的回调函数
    
    if(res.model.indexOf('iPhone')!== -1){
    // 判断设备型号,此处仅判断手机型号是不是iPhone,
    // 因为iPhone的导航标题栏高度是44px,而其他设备多为48px(注意,这里是 px 而不是 rpx)
    
    that.TitleBarHeight=44+'px';
    // 根据判断改变导航标题栏的高度,iPhone手机
    
    }else{
    that.TitleBarHeight=48+'px';
    // 非iPhone手机
    
    }
    that.StatusBarHeight=res.statusBarHeight+'px';
    // 获取到的设备状态栏高度,然后将值赋予想对应的对象,以改变对应的状态栏高度
    
    console.log(that.StatusBarHeight);
    console.log(that.TitleBarHeight);
    //console查看获取到的值
    }
    })
    },
    methods:{
    
    }
    }
    </script>
    
    <style>
    .StatusBarTop{
    /* // 状态栏,定位,保证背景与状态栏文字(颜色仅白与黑)的对比色 */
    
     750rpx;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 99999;
    /* //这个应该放到最高的地方,不能让别的元素将他遮住 */
    
    background-color: #FFA200;
    }
    .TitleBarStance{
    /* // 站位块,因为导航标题栏定位,所以需要一块等高块元素占据位置, */
    /* // 使下方的元素排列好,不造成塌陷 */
    
     750rpx;
    }
    .TitleBarTop{
    /* // 标题导航栏,定位,上下居中,微信小程序对应右上角胶囊上下居中 */
    
     750rpx;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    /* 上下必须居中 */
    
    justify-content: space-between;
    /* 左右向两边靠近,可以通过后面向内部缩进 */
    }
    .TitleBarTopLeft{
     80rpx;
    /* 三个view设置相同宽度,左右两边的view宽度一定要相同,这样中间的view才会在正中间*/
    
    height: 48rpx;
    /* 高度可以根据所需进行调整,不超过获取的设备状态栏高度即可*/
    display: flex;
    align-items: center;
    justify-content: flex-start;
    margin-left: 35rpx;
    /* 左边向增加左外边距,那右边一定要加右外边距 */
    }
    .TitleBarTopLeft image{
     48rpx;
    height: 48rpx;
    display: flex;
    align-items: center;
    justify-content: center;
    }
    .TitleBarTopMiddle{
     180rpx;
    display: flex;
    align-items: center;
    justify-content: center;
    /* 使用flex布局居中,*/
    }
    .TitleBarTopMiddle text{
    color: #FF0000;
    font-size: 28rpx;
    }
    
    .StatusBarTopRight{
     80rpx;
    margin-right: 35rpx;
    }
    
    .mainBody{
    /* 正文部分 */
    height: 1600px;
    }
    </style>
    

      真机调试的时候才发现写错了一句,目前已更改。

    忍一时,越想越气; 退一步,哎呦我去!
  • 相关阅读:
    学习笔记datatablexml转换
    立即执行函数
    MySQL基操—1.Linux下安装(CentOS6/7yum、rpm、tar)
    Linux1.11.shell(环境变量配置文件)
    三国HR评估报告
    毕业5年后拉开差距的原因
    职业的选择
    WPF图片的缩放节省内存
    .asmx支持post请求或者get请求调用
    ionic3遇到的刷新页面服务器关闭的问题
  • 原文地址:https://www.cnblogs.com/l-ialiu/p/13851466.html
Copyright © 2011-2022 走看看