微信小程序 搜索框实现模糊搜索(带模拟数据,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,一经查实,立即删除!

相关文章

小程序API能力汇总——基础容器API(三)

ty.getAccountInfo 获取小程序账号信息 需引入MiniKit&#xff0c;且在>3.1.0版本才可使用 参数 Object object 属性类型默认值必填说明completefunction否接口调用结束的回调函数&#xff08;调用成功、失败都会执行&#xff09;successfunction否接口调用成功的回调函数…

【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;、标准粒子群算法支持向量机和改进粒子群算法支持向量机三种方法对负荷进行…

Python在无人炸弹

Python在无人炸弹研发开发中具有重要的作用。以下是几个方面的重要性&#xff1a; 简单易学的语法&#xff1a;Python是一种简单易学的编程语言&#xff0c;其语法清晰简洁&#xff0c;易于理解和编写。这使得开发人员能够更快速地实现想法和解决问题。 丰富的库和框架&#x…

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…

k8s的一些关键信息(归类摘抄,非提炼)

零&#xff1a;举例说明 当用户提交一个 Deployment 对象到 Kubernetes 集群时&#xff0c;控制平面的 API Server 接收到该请求&#xff0c;并将其转发给 Controller Manager。Controller Manager 中的 Deployment Controller 监听到该请求&#xff0c;并根据用户定义的配置信…

推荐彩虹知识付费商城免授权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进行边界填充的基本原理和方法 一…

前端学习:jQuary的学习和使用

一、什么是jQuary jQuery 是一个 JavaScript 库。jQuery 极大地简化了 JavaScript 编程。jQuery 很容易学习。 二、jQuary和原生js对比获取input框中的数据和div框中的数据 <!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <tit…

人工智能技术学习专栏文章汇总—帮助你入门深度学习

人工智能大潮已来&#xff0c;stay hungry, stay foolish! 人工智能技术学习类文章汇总&#xff0c;帮助你入门深度学习。 人工智能学习与实训笔记&#xff08;一&#xff09;&#xff1a;零基础理解神经网络-CSDN博客 人工智能学习与实训笔记&#xff08;二&#xff09;&am…

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

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

Python 将一维数组或矩阵变为三维

Python 将一维数组或矩阵变为三维 正文 正文 话不多说直接上代码&#xff1a; import numpy as npsampling_points 10001arr np.linspace(0, 2, sampling_points) arr_3D arr.reshape(1, 1, -1) print(arr_3D) """ result: [[[0.0000e00 2.0000e-04 4.0000…

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

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

【国产MCU】-CH32V307-通用定时器(GPTM)-PWM输出

通用定时器(GPTM)-PWM输出 文章目录 通用定时器(GPTM)-PWM输出1、通用定时器的PWM输出介绍2、驱动API介绍3、PWM输出实例3.1 普通方式输出PWM3.2 DMA方式输出PWM本文将详细CH32V307通用定时器的PWM输出功能。 1、通用定时器的PWM输出介绍 在前面的文章中,对CH32V307的通用…

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

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

Android 10.0 展讯平台去掉长按power电源键+音量减进入recovery模式

1.前言 在10.0的系统产品开发中,在产品关机的情况下,长按power电源键和音量减的情况下,会在开机过程中然后进入recovery流程中, 在产品开发需要的情况下,要求去掉power电源键和音量减键组合键操作,所以就需要从kernel中来分析下power电源键和音量减的相关操作 的相关源码…

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

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

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

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