Skip to content
On this page
你当前查看的文档是tmui3.2.0(已不再支持NVUE)
[tmui3.1.x nvue点我] [tmui4.x uniappx原生开发代替nvue]

导航组件

标题导航 TmNavbar

标题导航,用途页面头部标题。可以默认透明,滚动实现背景可变的标题导航。

🌶️ 示例

查看模拟效果
示例模板
vue
<template>
    <view>
        <tm-navbar :scrollTop="scrollTop" lrWidth='56' :staticTransparent="staticTransparent" :linear-gradient="linear"
            :linearActiveGradient="bgcolor" bg-color="primary" @fiexdChange="navPosChange" title-color="white"
            active-bg-color="#ff5416" title-active-color="yellow" :isPlace="false">
            <template v-slot:title>
                <view class="flex flex-row flex-row-center-start relative flex-1" style="height:100%">
                    <tm-input focus-font-color="#ff5416" :focus-highlight="false" placeholder="搜索吧" icon-color="#ff5416"
                        round="76" v-if="ratio > 0" left-icon="search-2-line" dark-bg-color="white"
                        :style="{ opacity: ratio, width: (ratio * 400) + 'rpx' }" min-height="72">
                        <template v-slot:rightIcon>
                            <tm-button color="#ff5416" font-size="28" round="76" class="mr-2" height="68"
                                width="100">搜索</tm-button>
                        </template>
                    </tm-input>
                    <tm-text v-if="ratio < 1" :style="{ opacity: (1 - ratio), pointerEvents: 'none' }" color='white'
                        dark-color="white" class="absolute">NAVBAR 标题栏</tm-text>
                </view>
            </template>
            <template v-slot:right="{ isFiexd }">
                <tm-icon _class="mr-16" name="account-circle-line" size="40"
                    :color="(isFiexd as boolean) ? 'yellow' : 'white'"></tm-icon>
            </template>
        </tm-navbar>
        <tm-image src="https://store.tmui.design/api_v2/public/random_picture?random=183"></tm-image>

        <tm-sheet :margin="['16']">
            <tm-text font-size="36" class=" text-weight-b">标题导航 tmNavbar</tm-text>
            <tm-text class=" text-grey  line-8">可静态悬浮在顶部,也可动态悬浮顶部下拉动态改变背景</tm-text>
        </tm-sheet>
        <tm-sheet height="2000">
            <tm-text font-size="36" class=" text-weight-b ">滚动本页面,查看导航效果</tm-text>
            <tm-text class=" text-grey  my-20">可静态和悬浮时出现不同的渐变背景</tm-text>
            <tm-button :block="true" @click="setbgcolor">切换渐变导航</tm-button>
            <tm-text class=" text-grey  my-20">可静态和悬浮时出现不同的纯色背景</tm-text>
            <tm-button :block="true" @click="clearBgcolor">纯色背景</tm-button>
            <tm-text class=" text-grey  my-20">可静态时不透明</tm-text>
            <tm-button :block="true" @click="staticTransparent = !staticTransparent">{{ !staticTransparent ? '静态透明' :
                '静态不透明'
                }}</tm-button>
        </tm-sheet>
    </view>
</template>
<script setup lang="ts">
import { onPageScroll } from '@dcloudio/uni-app';

import { ref } from 'vue'
const ratio = ref(0)
const bgcolor = ref<string[]>([])
const linear = ref<string[]>([])
const staticTransparent = ref(true)
const scrollTop = ref(0)
const setbgcolor = () => {
    bgcolor.value = ['to right', '#ff338f', '#6b3eff'];
    linear.value = ['to right', '#02a7ff', '#22e192'];
}
const clearBgcolor = () => {
    bgcolor.value = [] as string[]
    linear.value = [] as string[]
}
const navPosChange = (posratio: number) => {
    ratio.value = posratio
}
onPageScroll((evt: Page.PageScrollOption) => {
    scrollTop.value = evt.scrollTop;
})
</script>
<style scoped></style>

🌶️ 兼容性

平台兼容

H5uniAPP小程序version
☑️☑️☑️☑️

🌱 参数

参数名类型默认值描述
isPlacebooleantrue是否底部占位内容,如果为false底部悬空。你的页面内容将自动压在导航栏的底部。
bgColorstring'white'背景颜色,注意这是静态时的背景色。
darkBgColorstring"#000000"暗黑的背景颜色。
activeBgColorstring''背景颜色,这是滑动时超过指定本状态栏高度时自动渐变到此颜色如果为空时,不会有动态背景如果提供的是白或者黑,暗黑时自动取反。
backColorstring''返回按钮的颜色.默认是取titleColor,如果你单独定义了以你定义的为准
titlestring'标题'标题
titleColorstring'#333333'默认标题颜色,暗黑是取白,如果有其它需求建议插槽。
titleActiveColorstring'#333333'动态悬浮时标题颜色,如果为暗黑时,你提供的颜色为白或者黑会反色如果提供的是彩色自动加深或者提亮
titleFontSizestring'34'标题文字大小
lrWidthstring'100'右边的宽度。
llWidthstring'100'左边的宽度。
zIndexnumber90层级。
backErrorPathstring'/pages/index/index'左边按钮默认点击返回上页。但如果上页返回失败(通常见于直接程序启动本面,无法进行上页返回时)失败后返回的页面。默认是首页。
showNavBackbooleantrue是否显示返回按钮。
linearGradientstring[]():string[]=>[]asstring[]渐变背景,如果提供,上面的BgColor背景和暗黑背景将失效。例:['toright','#ff667f','#ff5416']
linearActiveGradientstring[]():string[]=>[]asstring[]动态悬浮时的渐变背景,提供后上面的activeBgColor的背景和暗黑背景将失效。例:['toright','#ff667f','#ff5416']
staticTransparentbooleanfalse静态在顶部时是否透明背景
scrollTopnumber0如果需要悬浮滚动请在外部页面中监听onPageScroll事件,并把值传到这里。

🌹 事件

事件名参数返回数据描述
fiexdChange--当滚动页面时,导航栏位置
与滚动之间的距离差比(0~1)
0表示在顶部,1表示已经超过了导航高
主要是用来类型滚动时设置导航顶部的一些布局变化。
init名称:height,单位px,组件高。,-初始化完成向下发送一个事件用于告知本组件实际的高

🌽 slot插槽

插槽名数据描述
left名称:binding,isFiexd 类型:boolean
左边插槽
title-标题插槽
right名称:binding,isFiexd 类型:boolean
右边插槽

🥗 ref方法

方法名参数返回值描述