uniapp小程序自定义头部导航

这篇具有很好参考价值的文章主要介绍了uniapp小程序自定义头部导航。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

我们在开发小程序时,自带的头部导航样式往往不能满足需求,故只能自定义导航,接下来简要介绍下如何实现:

1. 去除自带的头部导航

要想自定义头部导航,首先要到pages.json文件夹中,找到对应页面,然后在style中写上代码:

// 找到对应页面,在style中写下所需代码
{
   "path": "pages/about/apply",
   "style": {
       "navigationStyle": "custom"  // 注意一定要书写此行代码
   }
}

2.封装自定义的头部导航

一个小程序,可能会有多个页面会使用到自定义的头部导航,所以为了方便使用,可以将导航封装为一个组件,具体代码如下:

1.html代码

<template>
  <view class="custom-nav">
    <view
      class="my-nav"
      :style="[{ background }, { color }, { height }, { paddingTop }]"
    >
      <!-- 左侧返回按钮 -->
      <view
        class="left"
        @click="onBack"
        v-if="back"
        :style="[{ color }, { paddingTop }]"
      >
      <u-icon name="arrow-left" :color="color" size="36"></u-icon>
      </view>
      <!-- 中间标题文字 -->
      <view class="title" :style="{color}">
        {{ title }}
      </view>
    </view>
    <view :style="{height}"></view>
  </view>
</template>

2.css代码

<style lang="scss">
  .my-nav{
    position: fixed;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 26rpx;
    z-index: 100;
    padding-bottom: 10rpx;

    .left {
      float: left;
      position: absolute;
      // width: 100rpx;
      line-height: 90rpx;
      top: 0;
      bottom: 0;
      left: 20rpx;
      margin: auto;
    }

    .title {
      padding: 0;
      font-size: 36rpx;
      font-family: Source Han Sans CN;
      // color: #FFFFFF;
    }
  }
</style>

3.js代码

<script>
  export default {
    data() {
      return {
        height: 0,
        paddingTop: 0,
      };
    },
    // props: ["title", "back"],
    props: {
      title: {
        // 标题文字(默认为空)
        type: String,
        default: "",
      },
      color: {
        // 标题和返回按钮颜色(默认白色)
        type: String,
        default: "#fff",
      },
      //建议使用background  因为使用backgroundColor,会导致不识别渐变颜色
      background: {
        // 背景颜色(不传值默认透明)
        type: String,
        default: "transparent",
      },
      back: {
        // 是否显示返回按钮(不传值默认不显示)
        type: Boolean,
        default: true,
      },
    },

    created() {
      const demo = uni.getMenuButtonBoundingClientRect();
      this.paddingTop = demo.top * 2 + "rpx";
      // 状态栏高度
      const statusBarHeight = uni.getSystemInfoSync().statusBarHeight;
      // 导航栏高度(标题栏高度)一般都为44px,所以我这里直接使用44
      // 总体高度 = 状态栏高度 + 导航栏高度
      this.height = (statusBarHeight + 44) * 2 + 'rpx'
    },
    methods: {
      // 左侧返回按钮调用
      //直接返回上一级
      onBack() {
        // this.$emit("onBack");
        uni.navigateBack({
					delta: 1 // 返回的页面数
				})
      },
    },
  };
</script>

3.使用自定义头部导航组件

 (1)先导入组件

 import topNav from "../components/topNav/topNav.vue";

(2)注册组件

export default {
  components: {
    topNav,
  },
}

(3)使用组件

<topNav :background="backgroundColor" title="首页"></topNav>

// backgroundColor这里传的是渐变色,除了传颜色,也可以传背景图
// 以下代码是写在js中的
data() {
  return {
     backgroundColor: "linear-gradient(to top, #3F77FE, #294EFA)",
}

4.效果图

uniapp自定义顶部导航栏,前端实战,uni-app,小程序

 文章来源地址https://www.toymoban.com/news/detail-515770.html

到了这里,关于uniapp小程序自定义头部导航的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【微信小程序】头部导航栏背景铺满顶部

    背景:使用uniapp开发微信小程序 需求:需要微信小程序顶部导航栏使用页面背景铺满顶部 我们可以利用 navigationStyle 属性,来处理导航栏样式,支持 default/custom,其中 custom 可自定义导航栏,只保留右上角胶囊状的按钮。 在pages.json 文件里,将globalStyle中新增或修改 navigatio

    2024年02月16日
    浏览(51)
  • uniapp自定义头部导航

    uniapp自定义头部导航

    2024年04月12日
    浏览(43)
  • uniapp自定义导航和头部

       src/compontents/uni-nav-bar/uni-nav-bar.vue src/compontents/uni-tab-bar/uni-tab-bar.vue src/layout/index.vue src/pages/home/index.vue src/pages/mine/index.vue App.vue global.js main.js page.json .eslintrc.js .prettierrc.js .gitignore忽略文件

    2024年02月09日
    浏览(44)
  • 微信小程序自定义顶部导航,滚动页面顶部导航颜色渐变

    微信小程序自定义顶部导航栏,使背景图置顶;当向上滚动页面时,实现顶部导航颜色渐变 实现方法 代码如下(示例): 提示:由于不同的手机机型顶部导航高度不一样,所有要获取手机的信息 总共三步: 1、初始化获取顶部导航信息 2、顶部导航文字上方通过view占位,同

    2024年02月11日
    浏览(55)
  • uniapp小程序 头部导航栏不显示

    使用的是HBuilder X 3.6.14版本,默认会在pages.json中生成两条页面配置样式: { \\\"navigationBarTitleText\\\": \\\"\\\", \\\"enablePullDownRefresh\\\": false } 其中navigationBarTitleText默认为空,所以此时在globalStyle中配置的全局样式会被覆盖,所以头部导航栏信息不会显示 解决方法: 注释掉默认生成的两条样式

    2024年02月11日
    浏览(36)
  • 微信原生小程序自定义顶部导航

    都2023了,自定义顶部导航应该不是什么新鲜事了,这里只是简单记录下 微信自己也提供了自定义顶部导航 navigation-bar ,大概看了下,可配置的也不少,所以看需求了,如果简单可以采用微信提供的,老规矩,先看效果 状态栏高度(getSystemInfoSync),就是手机顶部网络那块的

    2024年02月15日
    浏览(42)
  • 【uniapp】自定义导航栏时,设置安全距离,适配不同机型+最顶部的状态栏修改字体颜色

    1、在pages.json中,给对应的页面设置自定义导航栏样式,navigationStyle设为custom(自定义)时,导航栏的字体颜色自动变成白色了,如果有需要就设为black 2、定义自定义组件customNavbar,在组件中获取屏幕边界到安全区域的距离

    2024年02月05日
    浏览(51)
  • 微信小程序自定义头部标题导航栏

    wxml: js: wxss: 样例: 支持透明,标题部分可插槽 支持渐变色  常规居中,左上角icon可自定义,本地或者网络路径皆可 或者无标题,只有左上角icon 文件链接: https://download.csdn.net/download/qq_48702470/87815185 文件解压缩至项目根目录下的components文件夹下即可 使用:在想要使用

    2024年02月11日
    浏览(48)
  • 小程序实现自定义顶部导航栏搜索框

    在实现前先将其组件化,方便复用, (底部有demo) Component(Object object) | 微信开放文档 \\\"component\\\": true, // 自定义组件声明 \\\"usingComponents\\\": {} // 可选项,用于引用别的组件 \\\"navigationStyle\\\": \\\"custom\\\"// 导航栏样式   default  默认样式   custom  自定义导航栏,只保留右上角胶囊按钮 接下

    2024年02月12日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包