uniapp小程序之配置首页搜索框功能的实现
作者:不苒 发布时间:2024-04-22 13:03:28
本文效果图:
🌻正文
注意:我们介绍一下本次开发使用的是
uniapp
,本次分享内容的搜索框为禁止输入搜索框,点击跳转专属搜索页面。
🍉1、查阅官网配置搜索框pages配置项
配置链接:uni-app官网 (dcloud.net.cn)
1.1 首先进入官网后找到如下内容
1.2 如官网所示 style的说明如下,看图操作
用于设置每个页面的状态栏、导航条、标题、窗口背景色等。
页面中配置项会覆盖 globalStyle
中相同的配置项.
1.3 跳转指定的app-plus配置项
我们需要配置的是导航栏,所以选择
titleNView
属性,根据自己的需求去选择即可。
1.4 导航栏配置属性如下,选择我们需要的即可
🍑2、配置APP端与H5端搜索框(小程序端不兼容)
看了上面官网的截图,细心的小伙伴应该发现了,我们所选的app-plus是兼容H5的但是不兼容小程序端,所以我们需要自己手动编写小程序端的内容,详情看下文。
2.1 找到pages.json文件,配置搜索框
在pages配置项中,找到我们需要配置搜索框的页面位置,添加style配置项。示例代码如下:
{
"path": "pages/index/index",
"style": {
"app-plus": {
"titleNView": {
"searchInput": {
"align": "left",
"backgroundColor": "#F6F7F8",
"borderRadius": "40px",
"disabled": true,
"placeholder": "默认提示文本",
"placeholderColor": "#959FA0"
},
"buttons": [{
"float": "right",
"text": "分类",
"fontSize": "14px",
"color": "#959FA0",
"colorPressed": "#333333" // 按下状态按钮颜色
}]
}
}
}
}
写完上面的代码我们可以看一下效果图:
搜索框已经出现在我们首页的顶部,是我们所预期的效果。
2.2 监听搜索框与按钮的点击事件
搜索框点击事件与按钮点击事件
我们需要的就是上面两个方法
onNavigationBarSearchInputClicked
与onNavigationBarButtonTap
示例代码如下:
<script>
export default {
data() {
return {
}
},
onLoad() {
},
// 监听原生搜索框的点击事件
onNavigationBarSearchInputClicked() {
console.log("在这里指定我们的跳转路径")
/* uni.navigateTo({
url: 'pages/search/search'
}); */
},
// 监听原生标题栏按钮的点击事件
onNavigationBarButtonTap() {
console.log("监听到了原生标题栏按钮的点击事件");
},
methods: {
}
}
</script>
注意:
onNavigationBarSearchInputClicked
方法只有在pages.json
中的searchInput
配置disabled
为true
时才会触发我们可以在对应的方法内编写相应的操作,例如点击搜索框跳转指定的搜索页。
2.3 拓展知识:监听多个按钮的点击事件
细心的小伙伴能发现,官方文档中的按钮点击事件按钮是一个数组而不是单个的
那么监听多个按钮的点击事件我们应该怎么去区分我们点击的是哪个按钮呢?
给大家演示一下:
pages.json文件内容配置如下:
{
"path": "pages/index/index",
"style": {
"app-plus": {
"titleNView": {
"searchInput": {
"align": "left",
"backgroundColor": "#F6F7F8",
"borderRadius": "40px",
"disabled": true,
"placeholder": "默认提示文本",
"placeholderColor": "#959FA0"
},
// 左右两边各有一个按钮
"buttons": [{
"float": "right",
"text": "分类1",
"fontSize": "14px",
"color": "#959FA0",
"colorPressed": "#333333" // 按下状态按钮颜色
},
{
"float": "left",
"text": "分类2",
"fontSize": "14px",
"color": "#959FA0",
"colorPressed": "#333333" // 按下状态按钮颜色
}]
}
}
}
}
index.vue文件监听事件如下:
// 监听原生标题栏按钮的点击事件
onNavigationBarButtonTap(e) {
if(e.text=='分类1'){
console.log('当前点击的按钮为分类1按钮,可做相应操作')
}
if(e.text=='分类2'){
console.log('当前点击的按钮为分类2按钮,可做相应操作')
}
// e 代表的是所点击的按钮之一,如果需要操作指定按钮可以根据按钮的index值或者text值去区分做出不同的响应操作
console.log(e);
console.log("监听到了原生标题栏按钮的点击事件" + e.text);
}
点击其中一个按钮e输出结果如下,我们可以根据text属性和index属性去区分不同的按钮去完成相应的操作。
{
"color": "#959FA0",
"colorPressed": "#333333",
"float": "left",
"fontSize": "14px",
"fontWeight": "normal",
"index": 1,
"text": "分类2"
}
APP 和 H5效果如下:
🍋3、配置微信小程序搜索框
上文写到的我们配置的
app-plus
是不适配小程序端的,所以我们需要自己去手写一个搜索导航栏。示例代码中的class类中的类名样式是我已经在全局配置好的,由于篇幅比较长,之后的小程序文章也会经常使用,点击链接跳转下载可查看相对应的样式。
free.css文件下载
示例代码如下:
<template>
<view>
<!-- #ifdef MP -->
<!-- 只编译到微信小程序端 -->
<view class="flex align-center fixed-top" style="height: 44px;">
<!-- 搜索框 -->
<view class="ml-2 flex align-center flex-1 rounded-circle px-1"
style="background-color: #F6F7F8;color: #959FA0;" @click="GoSearch()">
<text class="iconfont iconsousuokuang"
style="margin-right: 8px;font-size: 20px;"></text>
<text>点击搜索框跳转专属搜索页面</text>
</view>
<view class="flex align-center px-2" style="color:#959FA0;" @click="classify()">分类</view>
</view>
<!-- #endif -->
</view>
</template>
<script>
export default {
data() {
return {}
},
onLoad() {
},
// 监听原生搜索框的点击事件
onNavigationBarSearchInputClicked() {
console.log("在这里指定我们的跳转路径")
/* uni.navigateTo({
url: 'pages/search/search'
}); */
},
// 监听原生标题栏按钮的点击事件
onNavigationBarButtonTap() {
console.log("监听到了原生标题栏按钮的点击事件" + e.text);
},
methods: {
GoSearch() {
console.log("跳转到搜索页");
},
classify() {
console.log('点击了分类按钮');
}
}
}
</script>
微信小程序端效果图如下,自定义方法也是比较简单的:
到这里我们的搜索导航栏配置三端完毕啦,期待大家的交流指点
来源:https://blog.csdn.net/qq_49002903/article/details/126736400
猜你喜欢
- Qt Designer的介绍在PyQt中编写UI界面可以直接通过代码来实现,也可以通过Qt Designer来完成。Qt Designer的
- --返回由备份集内包含的数据库和日志文件列表组成的结果集。 --主要获得逻辑文件名 restore filelistonly from di
- 第一种方法: 分为 大 中 小 控制正文字体大小,一般需要指定 id<!DOCTYPE html PUBLIC "-//W3
- 在计算机中数据有两种特征:类型和长度。所谓数据类型就是以数据的表现方式和存储方式来划分的数据的种类。在SQL Server 中每个变量、参数
- <!DOCTYPE html PUBLIC "-//W3C//DTD X
- 1. argparse 模块简介argparse是一个用来解析命令行参数的 Python 库,它是 Python 标准库的一部分。基于 py
- 自定义查询对象 - objects①声明一个类EntryManager,继承自models.Manager,并添加自定义函数②使用创建的自定
- 写在前面vue中关于插槽的文档说明很短,语言又写的很凝练,再加上其和methods,data,computed等常用选项使用频率、使用先后上
- 在我们的生活中,需要接触大量的带有机械按键的物品。当你用手指按下按键的时候。都会或强或弱的感受一股(嗯,也有可能是一丝丝)反作用力传递到你手
- Python 语句语句是 Python 解释器解析和处理的基本指令单元。通常解释器按顺序一个接一个的执行语句。在 REPL 会话中,语句在输
- glob模块实例详解glob的应用场景是要寻找一系列(符合特定规则)文件名。glob模块是最简单的模块之一,内容非常少。用它可以查找符合特定
- ConfigParser模块在Python3修改为configparser,这个模块定义了一个ConfigeParser类,该类的作用是让配
- 本文实例讲述了ThinkPHP框架实现用户信息查询更新及删除功能。分享给大家供大家参考,具体如下:一 代码1、配置文件<?phpret
- 1.Access数据库的DSN-less连接方法: set adocon=Server.Createobject(&q
- 初始化array实例化可以提供一个参数来描述允许那种数据类型,还可以有一个初始的数据序列存储在数组中。import arrayimport
- 用于绘制直线的line函数;用于绘制椭圆的ellipse函数;用于绘制矩形的rectangle函数;用于绘制圆的circle函数;用于绘制填
- 修改数据库字符集:ALTER DATABASE db_name DEFAULT CHARACTER SET character_name [
- encode() 方法返回字符串的编码版本。默认编码是当前的默认字符串编码。可给予设置不同的错误处理机制。语法以下是encode
- 一、排名开窗函数概述SQL Server的排名函数是对查询的结果进行排名和分组,TSQL共有4个排名函数,分别是:ROW_NUMBER、RA
- 1、查看当前数据库支出的存储引擎方法1:mysql> show engines \G;************************