微信小程序 搜索框实现模糊搜索(带模拟数据,js,wxml,wxss齐全)

最近在做一个小程序的页面,搜索框困扰了我很久,今天终于把搜索框给做了出来,记录一下过程

我主要使用的就是wx的if,当我输入框用户点击的时候,我前面的显示界面添加上false属性,然后我搜索页面显示出true的属性,至于模糊搜索,我是直接使用的js的匹配,话不多说,直接看成果和代码

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

代码

wxml

<view style="display: flex; align-items: center;background-color: rgb(71, 189, 254); margin-top: 200rpx;"><input placeholder="请输入关键词" focus="{{inputFocus}}" bindfocus="onFocus" bindblur="onBlur" style="border: 1px solid #ccc; padding: 10rpx; border-radius: 10rpx; flex: 1;background-color: rgb(255, 255, 255);" /><button wx:if="{{showSearch}}"bindtap="quxiao"style="margin-left: 10rpx; padding: 5rpx 10rpx;  color: #fff; border-radius: 5rpx; width: 140rpx;background-color: rgb(71, 189, 254);">取消</button></view><view class="another-container"><view wx:if="{{searchResult.length > 0}}"><!-- 显示搜索结果列表 --><view class="search-list"><view wx:if="{{showSearch && searchResult.length > 0}}"><!-- 显示搜索结果列表 --><view class="search-list"><view class="article-item" wx:for="{{searchResult}}" wx:key="index" bindtap="onArticleTap" data-articleid="{{item.articleid}}"><image class="article-image" src="{{item.image}}"></image><view class="article-content"><text class="article-title">{{item.title}}</text><view class="article-time">{{item.releasetime}}</view></view></view></view></view></view></view><view wx:else><!-- 当搜索结果为空时显示暂无搜索结果 --><view class="no-result">暂无搜索结果</view></view></view>

js

Page({/*** 页面的初始数据*/data: {showSearch: false,inputFocus: false,dataArray:[{"articleid": "3490400c-9988-4b57-8f8a-92124cb9bef3","title": "喝酒","releasetime": "2024-2-17","image": "https://pic.imgdb.cn/item/65d04d2a9f345e8d0321731d.jpg","text": "嘿嘿","teacherid": null},{"articleid": "40b3e53f-d2c6-4f11-b1f7-965f6ce54800","title": "检查作业呜呜呜","releasetime": "2024-2-17","image": "https://pic.imgdb.cn/item/65d0312b9f345e8d03cb438a.jpg","text": "好难","teacherid": null},{"articleid": "db100597-07b5-4470-9ed5-8e69b258dd48","title": "笨蛋去上学了不开心","releasetime": "2024-2-17","image": "https://pic.imgdb.cn/item/65ceff799f345e8d03690b4b.jpg","text": null,"teacherid": null},{"articleid": "1b275828-aea7-46f9-9912-0668772d0cd5","title": "送的手链好好看❤","releasetime": "2024-2-16","image": "https://pic.imgdb.cn/item/65ceff939f345e8d03695d7d.jpg","text": null,"teacherid": null},{"articleid": "9f9edd79-92d0-4758-bdd0-c5a333c653fe","title": "在家玩switch!","releasetime": "2024-2-16","image": "https://pic.imgdb.cn/item/65ceffa99f345e8d0369a7b0.jpg","text": "","teacherid": null},{"articleid": "1aac74b2-67a6-40e7-8967-b665f64df05c","title": "在家也会有彩虹!","releasetime": "2024-2-14","image": "https://pic.imgdb.cn/item/65ceffb69f345e8d0369d156.jpg","text": "","teacherid": null},{"articleid": "eda6872f-8154-47d4-98b4-38057e35d41c","title": "2是去看烟花","releasetime": "2024-2-13","image": "https://pic.imgdb.cn/item/65ceff799f345e8d03690a92.jpg","text": "","teacherid": null}]},onFocus: function() {this.setData({inputFocus: true,showSearch: true,isshow:false});},onBlur: function(e) {this.setData({isshow:false,showSearch: true,searchResult:null,Searchtxt:e.detail.value})var txt=this.data.Searchtxt;var dataArray=this.data.dataArrayconsole.log("开始搜索"+txt);const searchResult = this.fuzzySearch(dataArray, txt);console.log(searchResult);this.setData({searchResult:searchResult})},quxiao: function() {this.setData({showSearch: false,})},fuzzySearch(arr, searchText) {const filteredArray = arr.filter(item => {const titleMatch = item.title.toLowerCase().includes(searchText.toLowerCase());const timeMatch = item.releasetime.toLowerCase().includes(searchText.toLowerCase());const textMatch = item.text && item.text.toLowerCase().includes(searchText.toLowerCase());return titleMatch || timeMatch || textMatch;});return filteredArray;},/*** 生命周期函数--监听页面加载*/onLoad: function (options) {},/*** 生命周期函数--监听页面初次渲染完成*/onReady: function () {},/*** 生命周期函数--监听页面显示*/onShow: function () {},/*** 生命周期函数--监听页面隐藏*/onHide: function () {},/*** 生命周期函数--监听页面卸载*/onUnload: function () {},/*** 页面相关事件处理函数--监听用户下拉动作*/onPullDownRefresh: function () {},/*** 页面上拉触底事件的处理函数*/onReachBottom: function () {},/*** 用户点击右上角分享*/onShareAppMessage: function () {}
})

wxss

.search-list{margin-top: 20rpx;
}
.article-list {width: 80%;
}.article-item {margin-bottom: 20rpx;padding: 20rpx;background-color: #fff;border-radius: 10rpx;box-shadow: 0 2rpx 6rpx rgba(0, 0, 0, 0.1);display: flex;
}.article-item:last-child {margin-bottom: 0;
}.article-image {width: 120rpx;height: 120rpx;margin-right: 20rpx;border-radius: 10rpx;
}.article-content {flex: 1;
}.article-title {font-size: 32rpx;font-weight: bold;margin-top: 10rpx;
}.article-time {color: #999;font-size: 24rpx;margin-top: 10rpx;
}.article-text {font-size: 28rpx;margin-top: 10rpx;
}
.no-result {text-align: center;font-size: 32rpx;color: #999;margin-top: 20rpx;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/688874.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Jvm】类加载机制(Class Loading Mechanism)原理及应用场景

文章目录 Jvm基本组成一.什么是JVM类的加载二.类的生命周期阶段1&#xff1a;加载阶段2&#xff1a;验证阶段3&#xff1a;准备阶段4&#xff1a;解析阶段5&#xff1a;初始化 三.类初始化时机四.类加载器1.引导类加载器&#xff08;Bootstrap Class Loader&#xff09;2.拓展类…

leetcode13题罗马数字转成整数

代码 public static int romanToInt(String s) {// 创建一个HashMap&#xff0c;将罗马数字字符映射为整数值HashMap<Character, Integer> map new HashMap<>();map.put(I, 1);map.put(V, 5);map.put(X, 10);map.put(L, 50);map.put(C, 100);map.put(D, 500);map.…

Eclipse 创建 Hello World 工程

Eclipse 创建 Hello World 工程 1. Hello WorldReferences Download and install the Eclipse IDE. 1. Hello World Eclipse -> double click -> Launch 单击蓝色方框 (右上角) 最大化 IDE File -> New -> C Project -> Finish Project name&#xff1a;工程名…

Matlab|基于支持向量机的电力短期负荷预测【最小二乘、标准粒子群、改进粒子群】

目录 主要内容 部分代码 结果一览 下载链接 主要内容 该程序主要是对电力短期负荷进行预测&#xff0c;采用三种方法&#xff0c;分别是最小二乘支持向量机&#xff08;LSSVM&#xff09;、标准粒子群算法支持向量机和改进粒子群算法支持向量机三种方法对负荷进行…

LeetCode每日一题【209. 长度最小的子数组】

题目&#xff1a; 思路1&#xff1a;暴力循环 class Solution { public:int minSubArrayLen(int target, vector<int>& nums) {int len INT_MAX;for(int i0;i<nums.size();i){int sum 0;for(int ji;j<nums.size();j){sumnums[j];if(sum>target){len mi…

推荐彩虹知识付费商城免授权7.0源码

彩虹知识付费商城免授权7.0源码&#xff0c;最低配置环境 PHP7.2 1、上传源码到网站根目录&#xff0c;导入数据库文件&#xff1a;xydai.sql 2、修改数据库配置文件&#xff1a;/config.php 3、后台&#xff1a;/admin 账号&#xff1a;admin 密码&#xff1a;123456 4、前…

八、计算机视觉-边界填充

文章目录 前言一、原理二、具体的实现 前言 在Python中使用OpenCV进行边界填充&#xff08;也称为zero padding&#xff09;是一种常见的图像处理操作&#xff0c;通常用于在图像周围添加额外的像素以便进行卷积或其他操作。下面是使用OpenCV进行边界填充的基本原理和方法 一…

BufferedImage 这个类在jdk17中使用哪个import导入

在Java开发中&#xff0c;BufferedImage 类是用于处理图像数据的一个类。在JDK 17中&#xff0c;BufferedImage 类属于 java.awt.image 包。因此&#xff0c;要在你的Java程序中使用 BufferedImage 类&#xff0c;你需要通过以下方式导入该类&#xff1a; import java.awt.ima…

OpenCV DNN 活体检测项目环境配置等各阶段tips

date: 2020-09-22 14:53 资料来源《OpenCV深度学习应用与性能优化实践》第八章。 在复现这个项目的时候发现一些可以调整的小tips。 环境配置阶段 使用conda 创建python 工作环境时&#xff0c;注释掉requirems.txt 里的opencv-python-inference-engine4.1.2.1&#xff0c;安…

Spring6学习技术|简要介绍+安装环境+入门案例+log4j2日志

学习材料 尚硅谷Spring零基础入门到进阶&#xff0c;一套搞定spring6全套视频教程&#xff08;源码级讲解&#xff09; 碎碎念一下吧&#xff0c;javaWeb跟完了全程。还是感觉啥也不知道&#xff0c;啥也没学会。2025年春天能找到实习吗&#xff1f;真的好担心。 环境安装 纠…

基于Java SSM框架实现电影售票系统项目【项目源码】计算机毕业设计

基于java的SSM框架实现电影售票系统演示 SSM框架 当今流行的“SSM组合框架”是Spring SpringMVC MyBatis的缩写&#xff0c;受到很多的追捧&#xff0c;“组合SSM框架”是强强联手、各司其职、协调互补的团队精神。web项目的框架&#xff0c;通常更简单的数据源。Spring属于…

铌酸锂芯片与精密划片机:科技突破引领半导体制造新潮流

在当今快速发展的半导体行业中&#xff0c;一种结合了铌酸锂芯片与精密划片机的创新技术正在崭露头角。这种技术不仅引领着半导体制造领域的进步&#xff0c;更为其他产业带来了前所未有的变革。 铌酸锂芯片是一种新型的微电子芯片&#xff0c;它使用铌酸锂作为基底材料&#x…

Github 2024-02-18 开源项目日报 Top10

根据Github Trendings的统计&#xff0c;今日(2024-02-18统计)共有10个项目上榜。根据开发语言中项目的数量&#xff0c;汇总情况如下&#xff1a; 开发语言项目数量Python项目5PowerShell项目1Rust项目1PHP项目1Jupyter Notebook项目1TypeScript项目1 Black&#xff1a;不妥…

【开源】SpringBoot框架开发高校宿舍调配管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能需求2.1 学生端2.2 宿管2.3 老师端 三、系统展示四、核心代码4.1 查询单条个人习惯4.2 查询我的室友4.3 查询宿舍4.4 查询指定性别全部宿舍4.5 初次分配宿舍 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的…

快排——OJ题

&#x1f4d8;北尘_&#xff1a;个人主页 &#x1f30e;个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上&#xff0c;不忘来时的初心 文章目录 一、颜色划分1、题目讲解2、算法原理3、代码实现 二、排序数组1、题目讲解2、算法原理3、代码…

JavaAgent介绍 | 基本介绍及无侵入打印方法耗时

闲聊 最近在配置skywalking的过程中发现了-javaagent:这个配置&#xff0c;这里做一个简单的学习 什么是JavaAgent 网上似乎没有直接的文档介绍这个&#xff0c;只找了instrument包的相关文档&#xff0c;其内容页。其中的内容也都是介绍javaagent相关。 instrument包下核心…

pytorch中dataloader的prefetch_factor出错

今天跑huggingface的示例的时候&#xff0c;遇到了最让我头疼的问题&#xff0c;国内网上还没有对应的解释&#xff0c;我可能是第一人&#xff08;汗&#xff09;先看看报错&#xff1a; Traceback (most recent call last):File "F:\transformer\transformers\examples…

JAVA面试虚拟机篇

1. JVM 内存结构 要求 掌握 JVM 内存结构划分 尤其要知道方法区、永久代、元空间的关系 结合一段 java 代码的执行理解内存划分 执行 javac 命令编译源代码为字节码 执行 java 命令 创建 JVM&#xff0c;调用类加载子系统加载 class&#xff0c;将类的信息存入方法区 创建…

Ubuntu22.04上作业调度管理软件PBS Torque的安装、配置及主要使用方法

文章目录 前言一、PBS及Torque是什么&#xff1f;二、Ubuntu22.04上Torque的安装和配置步骤1. 更新系统软件包2. 安装必要的软件包3. 下载和安装Torque4. 配置Torque5. 设置环境变量6. 配置和启动Torque服务7. 配置计算节点8. 创建队列的信息&#xff0c;名称 batch0019. 提交测…

【Visual Studio】技巧 :自动与活动文档同步

在这里插入图片描述 工具 -> 选项 -> 项目和解决方案 - 勾选上面的 我厉害不&#xff01;&#xff01;&#xff01;