> 原生导航的体验更好,渲染新页面时,原生导航栏的渲染无需等待新页面dom加载,可以在新页面进入动画开始时就渲染。

> 更多功能参考此示例:https://ext.dcloud.net.cn/plugin?id=1765

[TOC]

## 原生导航栏的通用配置

> 原生通用配置:即小程序、APP、H5都通用的配置,修改pages.json,page>style(单个页面设置)或者globalStyle(全局设置)中进行navigationBar相关配置

> 参考 https://uniapp.dcloud.io/collocation/pages?id=style

## 5+ APP 导航栏扩展

> 除了上面提到的通用配置以外,还提供了5+ APP(即iOS、Android)的增强自定义配置,修改pages.json中的app-plus>titleNView的相关配置

> 参考文档:https://uniapp.dcloud.io/collocation/pages?id=app-plus

## 去除原生导航栏

> 修改pages.json,page>style(单个页面设置)或者globalStyle(全局设置)中将navigationStyle(默认default)修改为custom

> 被设置为custom的页面,没有了原生导航,则需要开发者使用view自行绘制导航栏

```

"globalStyle": {

"navigationStyle": "custom"

}

```

## 去除原生导航栏后自绘导航栏

> 通过绘制一个占位的view固定放在状态栏

> uni-app提供了一个状态栏高度的css变量,具体参考:https://uniapp.dcloud.io/frame?id=css%E5%8F%98%E9%87%8F

> 推荐使用第三方组件 (当然优先推荐使用原生,性能更好)

> 1. https://ext.dcloud.net.cn/plugin?id=974

> 2. https://ext.dcloud.net.cn/plugin?id=52

~~~

~~~

~~~

.status_bar {

height: var(--status-bar-height);

width: 100%;

background-color: #F8F8F8;

}

.top_view {

height: var(--status-bar-height);

width: 100%;

position: fixed;

background-color: #F8F8F8;

top: 0;

z-index: 999;

}

~~~

## 给原生导航栏添加自定义按钮

> 按钮的点击事件需要在页面监听onNavigationBarButtonTap事件

> 通过修改titleNView的配置实现自定义按钮,titleNView设置有很多,详细api:http://www.html5plus.org/doc/zh_cn/webview.html#plus.webview.WebviewTitleNViewStyles

> 提示:hello uni-app的中 模板 -> 顶部导航标题栏 有示例

> 页面监听代码如下:

~~~

export default {

data() {

return {}

},

onNavigationBarButtonTap() {

console.log("点击了自定义按钮");

}

}

~~~

> pages.json配置如下:

> buttons的text推荐使用字体图标

> 如果按钮使用的汉字或英文较长,推荐把字体改小一点,或者调节按钮宽度等值

> 配置button的背景颜色为透明:background:'rgba(0,0,0,0)'

~~~

{

"path": "pages/log/log",

"style": {

"navigationBarTitleText": "hello",

"app-plus": {

"titleNView": {

"buttons": [{

"text": "\ue534",

"fontSrc": "/static/uni.ttf",

"fontSize": "22px"

}]

}

}

}

}

~~~

### 导航栏带红点和角标

~~~

{

"path" : "nav-dot/nav-dot",

"style" : {

"navigationBarTitleText" : "导航栏带红点和角标",

"app-plus" : {

"titleNView" : {

"buttons" : [

{

"text" : "消息",

"fontSize" : "14",

"redDot" : true

},

{

"text" : "关注",

"fontSize" : "14",

"badgeText" : "12"

}

]

}

}

}

}

~~~

### 导航栏带下拉选择(城市选择)

~~~

{

"path" : "nav-city-dropdown/nav-city-dropdown",

"style" : {

"navigationBarTitleText" : "导航栏带城市选择",

"app-plus" : {

"titleNView" : {

"buttons" : [

{

"text" : "北京市",

"fontSize" : "14",

"select" : true,

"width" : "auto"

}

]

}

}

}

}

~~~

### 导航栏带搜索框

> 因代码较多,此处不列,请参考hello uni-app的 模板 -> 顶部导航标题栏示例。

### 透明渐变样式

> 原生导航栏还支持透明渐变效果,页面刚载入时没有导航标题,页面内容通顶到状态栏里,页面向下滚动后标题栏渐变出现。

~~~

{

"path": "pages/log/log",

"style": {

"navigationBarTitleText": "hello",

"app-plus": {

"titleNView": {

"type": "transparent"

}

}

}

}

~~~

### 导航栏带图片

> titleNView新版配置可以直接配图片,还支持Gif图。但这里提供一个黑科技写法,通过在titleNView里配置tags,可以实现导航栏绘制图片的效果:

> 通过配置 tags 除了可以绘制图片,还可以绘制更多丰富的内容,如:richtext(富文本)、font(文本)、input(输入框)、rect(矩形区域)。详情参考:[titleNView](http://www.html5plus.org/doc/zh_cn/webview.html#plus.webview.WebviewTitleNViewStyles)、[tags](http://www.html5plus.org/doc/zh_cn/nativeobj.html#plus.nativeObj.ViewDrawTagStyles)。

~~~

{

"path" : "nav-image/nav-image",

"style" : {

"app-plus" : {

"titleNView" : {

"titleText" : "",

"tags" : [

{

"tag" : "img",

"src" : "/static/nav.png",

"position" : {

"left" : "auto",

"top" : "auto",

"width" : "110px",

"height" : "26px"

}

}

]

}

}

}

}

~~~

## 通过setStyle方式动态修改原生导航栏样式

> 如果需要js动态修改导航栏,uni有跨端的api可修改标题、背景色、前景色。这部分是app、小程序、h5都支持的,参考 https://uniapp.dcloud.io/api/ui/navigationbar。

> 对于app侧扩展的设置,比如自己添加的buttons,则需使用plus的js api来动态设置。在App端可以通过得到webview对象,通过setStyle方法重新设置,包括修改webview对象的titleNview属性,以达到修改标题栏按钮文字及样式的功能。具体参考:https://ask.dcloud.net.cn/article/35374

参考文档:

> https://uniapp.dcloud.io/collocation/pages?id=style

> https://ask.dcloud.net.cn/article/34921

> 不错的导航栏插件:https://ext.dcloud.net.cn/plugin?id=52

uniapp 如何给搜索框设值_头部导航栏基础设置相关推荐

  1. uniapp 如何给搜索框设值_uni-app搜索功能前后端开发(页面)

    uni-app搜索功能前后端开发(页面) 博客说明文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 借助的插件地址 展示 前端是使用vue, ...

  2. uniapp 如何给搜索框设值_uni-app 顶部配置搜索框和左右图标

    顶部的图标只支持本地图片哈,所以你要将阿里巴巴上的图标下载到本地, 然后只要XXX.ttf这个文件就行了 然后放在static这个文件中 在pages.json中fontSrc进行引入. text:使 ...

  3. 索引栏_网站导航栏如何设置才能促使网站SEO优化更好?

    众所周知,网站导航是一个网站不可或缺的一部分,优质的网站导航栏不仅能够让访客知道自己的所在位置,还能提高访客的浏览效率,更好的提高用户体验,那么导航栏要怎样设置才能更有利于SEO优化呢?下面一起来了解 ...

  4. uni-app 导航栏透明设置

    uni-app 导航栏透明设置 1.pages.json的style中配置 {"path": "pages/shop/shop","style&quo ...

  5. uniapp APP项目启动页面全屏显示去除导航栏和下巴

    uniapp APP项目启动页面全屏显示去除导航栏和下巴 <template><view><!-- 启动图 --><view class="star ...

  6. uni-app的列表搜索框_微信怎么搜索小程序?小程序能有什么用?

    微信小程序发布三年多,如今很多人的日常生活已经离不开它.不过新手常常会遇到这样的情况:使用过某个小程序后,找不到它了:想要再次使用,不知道上哪儿去找.所以下面就跟大家科普下如何找到小程序,以及如何搜索 ...

  7. uniApp学习(8)搜索框的创建和自动获取焦点

    1.跳转到搜索页面功能 点击搜索跳转,显示热门搜索和,搜索历史 结果如下所示 1.创建搜索页search.vue 配置pages.json页面配置app-plus导航搜索页面(这个只针对h5和APP有 ...

  8. android搜索框功能实现_巧用 Trie 树,实现搜索引擎关键词提示功能

    来源 | 码海责编 | Carol封图 | CSDN 付费下载于视觉中国我们几乎每天都在用搜索引擎搜索信息,相信大家肯定有注意过这样一个细节:当输入某个字符的时候,搜索引框底下会出现多个推荐词,如下, ...

  9. 【微信小程序】使用uni-app——开发首页搜索框导航栏(可同时兼容APP、H5、小程序)

    目录 前言 App.H5效果 小程序效果 一.兼容APP.H5的方式 二.兼容小程序 三.实现同时兼容 前言 首页都会提供一个搜索框给到客户,让客户自己去搜索自己想要的内容,这里就需要导航栏,来实现搜 ...

最新文章

  1. 图解全球无人驾驶产业链:这些公司在主宰人类出行的未来
  2. Java使用MyEclipse2017时的一些小细节
  3. mysql 替换 多个逗号_如何使用mySQL replace()替换多个记录中的字符串?
  4. java.net.inetaddress_java.net.InetAddress类的应用
  5. codeforces 706B B. Interesting drink(二分)
  6. p5js可以在linux上运行吗,在linux上使用python运行phantomjs
  7. 【Phpstorm】Property accessed via magic method
  8. java wait 释放锁_JAVA锁之wait,notify(wait会释放锁,notify仅仅只是通知,不释放锁)...
  9. 撩妹java代码_Java程序媛深入浅出设计模式中的撩妹神技--中篇
  10. MeasureSpec学习
  11. win7 32 java_Win7 32位系统下Java开发环境的安装及配置
  12. 商务统计分析(第3章 数据描述)
  13. 超频到3200最佳时序_10900K内存搭配超频测试,七彩虹CVN捍卫者内存颜值标杆
  14. 投稿Springer旗下某中科院1区TOP期刊时间记载
  15. 怎么用python将日期转化为数字_python转化excel数字日期为标准日期操作
  16. 尚硅谷YYDS (课件资料)
  17. 【图像处理】.jpg 和 .png
  18. python -m pip install --upgrade pip更新pip报错终极解决方法
  19. arcmap中图斑面积代表_【干货】ArcGIS四种计算图斑面积的方法
  20. python中sorted函数的用法及字典如何根据键或值进行排序

热门文章

  1. Java 图形用户界面(GUI)java.awt包概述
  2. waitpid最后以一个参数设为0_西门子MM440变频器参数设置
  3. lombok中的@Data注解与MyBatis的懒加载机制冲突解决
  4. android表格布局的使用方法,Android布局(RelativeLayout、TableLayout等)使用方法
  5. 【大白话系列】带你进入网络的世界【都说计网难,一篇即可激发你的兴趣】
  6. seata+nacos出现failed to req API:/nacos/v1/ns/instance/beat after all servers([127.0.0.1:8848])
  7. PaddleOCR——申请显存不足【Allocate too much memory for the GPU memory pool, assigned 8000 MB】解决方案
  8. wordpress 主机伪静态404.php seo,wordpress开启伪静态之后,出现404是什么原因?
  9. unity热更新json_Unity热更新之AssetBundle打包篇
  10. 案例代码:springboot+springsecurity+redis设置新登录后踢出前一个登录用户