uni-app 带标题logo的自定义导航栏

发布于 1周前 作者 eggper 来自 Uni-App

uni-app 带标题logo的自定义导航栏

2 回复

如果是app端,titleNView是自带这个功能的。看pages.json的文档


在uni-app中实现带标题和Logo的自定义导航栏,可以通过在页面的<template>部分定义自定义组件,并在<script>部分进行相应的逻辑处理,同时在<style>部分进行样式调整。以下是一个简单的示例代码,展示如何实现这一功能。

示例代码

1. 模板部分 (<template>)

<template>
  <view class="custom-navbar">
    <image class="navbar-logo" src="/static/logo.png" mode="aspectFit"></image>
    <view class="navbar-title">{{ title }}</view>
  </view>
  <view class="page-content" style="padding-top: 44px;"> <!-- 根据你的导航栏高度调整padding-top -->
    <!-- 页面内容 -->
    <text>这里是页面内容</text>
  </view>
</template>

2. 脚本部分 (<script>)

<script>
export default {
  data() {
    return {
      title: '页面标题' // 可以根据需求动态修改标题
    };
  },
  onLoad() {
    // 可以在这里处理页面加载时的逻辑,比如从Vuex或API获取标题
  },
  methods: {
    // 可以在这里定义方法,比如修改标题
    updateTitle(newTitle) {
      this.title = newTitle;
    }
  }
};
</script>

3. 样式部分 (<style>)

<style scoped>
.custom-navbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  height: 44px; /* 导航栏高度 */
  background-color: #ffffff; /* 背景色 */
  padding: 0 16px; /* 内边距 */
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); /* 阴影效果 */
  position: fixed;
  top: 0;
  left: 0;
  z-index: 999; /* 确保在最上层 */
}

.navbar-logo {
  width: 36px; /* Logo宽度 */
  height: 36px; /* Logo高度 */
}

.navbar-title {
  font-size: 18px; /* 标题字体大小 */
  font-weight: bold; /* 标题字体粗细 */
  color: #333333; /* 标题颜色 */
  flex: 1;
  text-align: center;
}

.page-content {
  /* 页面内容样式 */
}
</style>

说明

  • custom-navbar 类用于定义自定义导航栏的样式。
  • navbar-logo 类用于设置Logo图片的样式。
  • navbar-title 类用于设置标题的样式。
  • 使用 position: fixed; top: 0; left: 0; z-index: 999; 确保导航栏固定在页面顶部,并位于其他内容之上。
  • page-content 类的 padding-top 根据导航栏的高度调整,确保内容不被导航栏遮挡。

通过上述代码,你可以在uni-app中实现一个带有标题和Logo的自定义导航栏。根据实际需求,你可以进一步调整样式和功能。

回到顶部