位置: IT常识 - 正文

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

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

目录

前言

App、H5效果

小程序效果

一、兼容APP、H5的方式

二、兼容小程序

三、实现同时兼容


前言

推荐整理分享【微信小程序】使用uni-app——开发首页搜索框导航栏(可同时兼容APP、H5、小程序)(微信小程序在哪里找?),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:微信小程序游戏手游排行榜,微信小程序开发平台,微信小程序怎么制作自己的小程序,微信小程序怎么制作自己的小程序,微信小程序开发一个多少钱,微信小程序开发一个多少钱,微信小程序店铺怎么开,微信小程序怎么制作自己的小程序,内容如对您有帮助,希望把文章链接给更多的朋友!

首页都会提供一个搜索框给到客户,让客户自己去搜索自己想要的内容,这里就需要导航栏,来实现搜索页面的跳转,效果如下

App、H5效果

小程序效果

一、兼容APP、H5的方式

在常见titleNView配置代码示例中可以看到基本样式的代码如下

{"pages": [{"path": "pages/index/index", //首页"style": {"app-plus": {"titleNView": false //禁用原生导航栏}}}, {"path": "pages/log/log", //日志页面"style": {"app-plus": {"bounce": "none", //关闭窗口回弹效果"titleNView": {"buttons": [ //原生标题栏按钮配置,{"text": "分享" //原生标题栏增加分享按钮,点击事件可通过页面的 onNavigationBarButtonTap 函数进行监听}],"backButton": { //自定义 backButton"background": "#00FF00"}}}}}, {"path": "pages/detail/detail", //详情页面"style": {"navigationBarTitleText": "详情","app-plus": {"titleNView": {"type": "transparent"//透明渐变导航栏 App-nvue 2.4.4+ 支持}}}}, {"path": "pages/search/search", //搜索页面"style": {"app-plus": {"titleNView": {"type": "transparent",//透明渐变导航栏 App-nvue 2.4.4+ 支持"searchInput": {"backgroundColor": "#fff","borderRadius": "6px", //输入框圆角"placeholder": "请输入搜索内容","disabled": true //disable时点击输入框不置焦,可以跳到新页面搜索}}}}}...]}

我们并不需要所有的内容,本次我将介绍的是,"buttons","searchInput"的组合使用,这里的buttons其实是我的导航栏左右的两个图片,可以配合图标实现想要的功能,searchInput就是中间的搜索框

需要在pages.json中配置,可在button中添加,不过需要注意的是,不管添加文字,矢量图片,默认都是右浮动,可以把其中一个改成左浮动,这里我使用的是阿里巴巴矢量图库的图片,下载文件,引入即可有需要的小伙伴我可以免费提供一个文件夹。

 配置代码如下

"path": "pages/index/index","style": {"navigationBarTitleText": "小余努力搬砖","app-plus": {"titleNView": {"searchInput": {"backgroundColor": "#f4f4f4","borderRadius": "6px", "placeholder": "请输入搜索内容","disabled": true },"buttons": [{"fontSrc": "/static/font/iconfont.ttf",//矢量图片引入路径"float": "left","text": "\ue67a",//引入图片一定要带u"fontSize": "24px",//大小"color": "#666666"},{"float": "right","text":"\ue661","fontSrc": "/static/font/iconfont.ttf","fontSize": "24px","color": "#666666"}]}}}

为了达到跳转的效果,我要在页面同级创建文件夹,为搜索页面,我们要主页使用页面生命周期onNavigationBarSearchInputClicked(此次文件夹需要在pages.json中注册)

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

 来跳转到我们先要的页面

onNavigationBarSearchInputClicked(){uni.navigateTo({url:'../search/search'})}二、兼容小程序

需要与pages同级创建一个components文件夹,在此文件夹下,不需要在用import引入,就可以注册,创建一个如下的插槽子文件夹,带同名目录。在components中的文件都不需要在pages.json注册。(这里实现的主要方式,是通过自己写的样式,来展现出一个搜索框)

<template><view class='slot'><slot name='left'></slot><slot name='center'></slot><slot name='right'></slot></view></template><script>export default {name:"search-slot",data() {return {};}}</script><style scoped>.slot{width: 750rpx;display: flex;}</style>

在首页中引入插槽(不会或者忘记的,可以去学习博主的一学就会的插槽教学),其中的图片都是引入的阿里巴巴矢量图片,图片是我提前准备好的,有想要的小伙伴,私聊我。如下就是我提前准备好的,只要用class就能引入

<search-slot class='flex'><view class="left" slot='left'><text class="iconfont icon-xiaoxi"></text></view><view class="center" slot='center'><text class="iconfont icon-sousuo" @click="search"></text></view><view class="right" slot='right'><text class="iconfont icon-richscan_icon"></text></view></search-slot>

这里也同样需要点击搜索导航跳转到搜索页面(此次文件夹需要在pages.json中注册),是通过@click绑定事件完成的,路径还是同样的方法(创建一个专属的搜索页面)

methods: {search(){uni.navigateTo({url:'../search/search'})}}

css样式代码

<style>.flex {display: flex;height: 88rpx;line-height: 88rpx;align-items: center;}.left {width: 44rpx;flex: 0 0 44px;align-items: center;text-align: center;}.center {flex: 1;height: 60rpx;line-height: 60rpx;background-color: #eee;text-align: center;color: #ccc;}.right {width: 44rpx;flex: 0 0 44px;align-items: center;text-align: center;}</style>三、实现同时兼容

通过以上代码,已经实现了在app、h5、小程序,实现搜索框导航栏,但是如果想要同时满足app、h5、小程序,就需要对此作出一个区域性的判断。

如果没有按兼容性显示,同时配置如上的两个搜索框导航栏,在app、h5就会出现两个搜索框,因为它们兼容小程序的配置

但是小程序只有一个,因为小程序不兼容在 pages.json中配置的搜索框

这时候不用紧张,我们还记得媒体查询吗,这里的方式,和媒体查询几乎是一个意思,在特定的环境使用特定的样式,我们这里通过官网文档可以找到条件编译

使用很简单,只要将代码包裹进条件中即可,我们这里只要将小程序的包裹进,只在微信小程序中编译的条件中即可

#ifdef  MP需条件编译的代码#endif 

代码如下

把配置在首页的小程序的导航栏包裹住(小程序不兼容在 pages.json中的配置,这里就不用在意是否需要条件编译)这样,小程序的搜索框导航不会在app、h5出现了。从而实现了同时兼容的效果。

<!--#ifdef MP --><search-slot class='flex'><view class="left" slot='left'><text class="iconfont icon-xiaoxi"></text></view><view class="center" slot='center'><text class="iconfont icon-sousuo" @click="search"></text></view><view class="right" slot='right'><text class="iconfont icon-richscan_icon"></text></view></search-slot><!--#endif-->
本文链接地址:https://www.jiuchutong.com/zhishi/297563.html 转载请保留说明!

上一篇:【TypeScript】TS 看这一篇就够了(typescripte)

下一篇:解决雪花算法生成的ID传输前端后精度丢失(雪花算法workid)

  • 小米手机纯净模式怎么打开(小米手机纯净模式怎么关闭)

    小米手机纯净模式怎么打开(小米手机纯净模式怎么关闭)

  • 苹果ac+服务的内容(iphone ac+服务的内容)

    苹果ac+服务的内容(iphone ac+服务的内容)

  • qq横屏竖屏在哪设置(qq横屏竖屏在哪设置平板)

    qq横屏竖屏在哪设置(qq横屏竖屏在哪设置平板)

  • 苹果官网送达时间准吗(苹果官网送达时间)

    苹果官网送达时间准吗(苹果官网送达时间)

  • 抖音怎样抽发(怎么抽到抖音里的发)

    抖音怎样抽发(怎么抽到抖音里的发)

  • 2020微信最多可以加多少人(微信最多是多少人)

    2020微信最多可以加多少人(微信最多是多少人)

  • 微博发出来没有转发键(微博发出去没有)

    微博发出来没有转发键(微博发出去没有)

  • 诺基亚2720flip能用微信吗(诺基亚2720flip评测)

    诺基亚2720flip能用微信吗(诺基亚2720flip评测)

  • nokeyboarddetected是什么意思

    nokeyboarddetected是什么意思

  • 手机接电话自动挂断是什么原因(手机接电话自动关机怎么回事)

    手机接电话自动挂断是什么原因(手机接电话自动关机怎么回事)

  • 点传是啥(点传app)

    点传是啥(点传app)

  • 华为nova7上面的孔是什么(华为nova7上面的灯)

    华为nova7上面的孔是什么(华为nova7上面的灯)

  • 华为matebook14重量(华为电脑mate book 14怎么重启)

    华为matebook14重量(华为电脑mate book 14怎么重启)

  • iphone11pro max怎么开机(iphone11promax怎么关机)

    iphone11pro max怎么开机(iphone11promax怎么关机)

  • 华为手机测量仪在哪里(华为手机测量仪怎么测量长度)

    华为手机测量仪在哪里(华为手机测量仪怎么测量长度)

  • ios怎么清除应用缓存(苹果如何清除应用)

    ios怎么清除应用缓存(苹果如何清除应用)

  • 拍视频如何用siri配音(拍视频如何用别人的声音)

    拍视频如何用siri配音(拍视频如何用别人的声音)

  • 165开头的手机号属于虚拟号段吗(165开头的手机号是催收吗)

    165开头的手机号属于虚拟号段吗(165开头的手机号是催收吗)

  • 微信零钱明细和账单对不上为什么(微信零钱明细和账单明细的区别)

    微信零钱明细和账单对不上为什么(微信零钱明细和账单明细的区别)

  • word怎么设置段落底纹(word怎么设置段落开头空两格)

    word怎么设置段落底纹(word怎么设置段落开头空两格)

  • iphonea1700是苹果几(iphonea1700是哪款)

    iphonea1700是苹果几(iphonea1700是哪款)

  • 查看所有共享文件夹(查看所有共享文档)

    查看所有共享文件夹(查看所有共享文档)

  • Win7系统中,笔记本电脑摄像头怎么打开?(windows7的笔记本有哪些)

    Win7系统中,笔记本电脑摄像头怎么打开?(windows7的笔记本有哪些)

  • 电脑机箱前面耳机没声音怎么办?(电脑机箱前面耳机的WIN10系统没有声音怎么办)

    电脑机箱前面耳机没声音怎么办?(电脑机箱前面耳机的WIN10系统没有声音怎么办)

  • 图文详解vue.js devtools插件使用方法(图文详解一本通)

    图文详解vue.js devtools插件使用方法(图文详解一本通)

  • 税款滞纳金和利息
  • 一般纳税人销售旧货
  • 劳动合同和劳务合同有什么区别 举例
  • 未分配利润很高说明什么
  • 工程招标费计入什么科目
  • 发票验证码和校验码是一样的吗
  • 充电桩收入属于什么类别
  • 跨区税源登记是指
  • 印花税是不是必须要交
  • 公司注册前发生费用没有发票怎么办
  • 其他应付款冲销怎么做
  • 保证金抵扣货款合同
  • 赠送的固定资产需要计提折旧吗?
  • 哪些费用可在缴纳企业所得税前扣除呢?
  • 公司进项票不够怎么回事
  • 现代服务业要满足什么条件才转一般纳税人
  • 专项资金怎么入账
  • 其他应付款余额在借方表示什么意思
  • 代扣代缴企业所得税账务处理
  • 进项税转出月底怎么处理
  • 完税凭证号是几位数
  • 个体工商户经营所得税怎么申报
  • 核销外管证需要什么手续
  • 注销怎么做账
  • 企业筹建期发生的广告宣传费怎么抵减所得税
  • 劳务外包开什么样的发票
  • 为什么windows10关机后自动开机
  • 股权转让的条件和方式
  • 限额领料单一般一式几联
  • bfsvc.exe是什么
  • 企业支付宝收到钱到哪里
  • 职工教育经费一定要提吗
  • PHP:image_type_to_mime_type()的用法_GD库图像处理函数
  • 应收挂账太久有什么税务风险
  • php的框架有哪些
  • Yii2实现ajax上传图片插件用法
  • vue内置指令实验总结
  • 最强大的人工智能武器
  • python爬虫案例题目
  • 出口增值税免抵退税
  • 弱电工程计入什么费用
  • 企业多久报一次工伤保险
  • 如何在对公账户对账操作
  • 个人所得税汇算清缴时间
  • 动态规划知乎
  • sql server 判断数据是否存在
  • docker安装redis设置密码无效
  • 企业建造的厂房属于固定成本吗
  • 发票有别的字迹有影响吗
  • db2pd 命令
  • 零星采购入什么科目
  • 土地出让金如何缴纳
  • 少计提的税费如何补提
  • 日常生活中常见的气质类型包括
  • 不提供银行流水的理由
  • 小规模纳税人能抵扣进项税额吗
  • 报税中反写是什么意思
  • 托管服务费开什么发票
  • 个人报销费用怎么做分录
  • 收到发票没付款,能打赢官司吗
  • 管理会计运用什么软件
  • mysql %d
  • sqlserver 千万数量级分页存储过程代码
  • win2003和2003r2
  • macbookzen
  • ubuntu安装sz
  • gnaupdaemon.exe是什么
  • linux系统崩溃了怎么办
  • win10打不开应用市场
  • 两台没联网的电脑怎么创建局域网
  • 安装centos no such device
  • js 模态对话框和对话框
  • python socket编程步骤
  • php开机启动
  • 请问在javascript程序中
  • 天津市国税局网站
  • 电子发票提取网站
  • 旅游景区可免交土地使用税
  • 广东电子税务局官网登录入口手机版
  • 抄税失败是怎么回事
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设