微信小程序实现搜索历史功能


Posted in Javascript onMarch 26, 2020

结合了微信给的资料,马马虎虎摸索出了一些东西,下面说一下微信小程里序搜索历史功能的实现,下图是实现效果。

微信小程序实现搜索历史功能

首先,定义历史记录的显示风格和方式,在下用的是列表模式,没有使用什么比较酷炫的套路。

<view wx:for="{{sercherStorage}}" wx:key="item.id">
 <view class="liclass" style="color:#9E9E9E;border-bottom:0;font-size:26rpx;" id="{{item.id}}" bindtap="tapSercherStorage">
 <text style="width:100rpx">{{item.name}}</text>
 </view>
</view>

其次是“清除历史记录”按钮,个人建议在没有搜索历史的时候不显示按钮,因为在下有些强迫症

<view wx:if="{{sercherStorage.length!==0}}" style="text-align:center;" bindtap="clearSearchStorage">
 <view class="history-span">清除历史记录</view>
</view>

(微信小程序的数据交互还是蛮喜欢的)

这里是列表的CSS样式

/*搜索历史列表外部容器样式*/
 .ddclass { 
 position: absolute; 
 width: 100%; 
 margin-top: 10px; 
 left: 0; 

} 

/*搜索历史普通样式*/

 .liclass { 
 font-size: 14px; 
 line-height: 34px; 
 color: #575757; 
 height: 34px; 
 display: block; 
 padding-left: 18px; 
 background-color: #fff; 
 border-bottom: 1px solid #dbdbdb; 
}

最后是一些JS控制

1、参数声明

data: {
 sercherStorage: [],
 StorageFlag: false //显示搜索记录标志位
 }

2、两个主要的JS方法

//清除缓存历史
 clearSearchStorage: function () {
 wx.removeStorageSync('searchData')
 this.setData({
 sercherStorage: [],
 StorageFlag: false,
 })
 },
 //打开历史记录列表
 openLocationsercher: function () {
 this.setData({
 sercherStorage: wx.getStorageSync('searchData') || [], 
 StorageFlag: true,
 listFlag: true,
 })
 }

3、点击搜索添加搜索内容进历史记录

var self = this;
if(self.data.search.length == 0){
 return;
}
//控制搜索历史
var self = this;
if (this.data.search != '') {
 //将搜索记录更新到缓存
 var searchData = self.data.sercherStorage;
 searchData.push({
 id: searchData.length,
 name: self.data.search
 })
 wx.setStorageSync('searchData', searchData);
 self.setData({ StorageFlag: false, })
}

4、在进入搜索页面时,检索出缓存中的搜索历史。(适用于搜索页面是单独页面的业务)

onLoad: function (options) {
 this.openLocationsercher();
 }

5、清空历史记录,只需在上面声明搜索按钮时把”bindtap”属性值设置成写好的JS方法名即可。

更多搜索功能实现的精彩文章,请点击专题:javascript搜索功能汇总 进行学习

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 强制刷新页面的实现代码
Dec 13 Javascript
input的focus方法使用
Mar 13 Javascript
JavaScript 学习笔记之语句
Jan 14 Javascript
早该知道的7个JavaScript技巧
Jun 21 Javascript
JavaScript组合模式学习要点
Aug 26 Javascript
详解Node.js:events事件模块
Nov 24 Javascript
ES6教程之for循环和Map,Set用法分析
Apr 10 Javascript
详解Node项目部署到云服务器上
Jul 12 Javascript
vue-cli 脚手架基于Nightwatch的端到端测试环境的过程
Sep 30 Javascript
使用webpack编译es6代码的方法步骤
Apr 28 Javascript
深入了解JavaScript代码覆盖
Jun 13 Javascript
js模拟实现百度搜索
Jun 28 Javascript
微信小程序云开发修改云数据库中的数据方法
May 18 #Javascript
小程序云开发教程如何使用云函数实现点赞功能
May 18 #Javascript
微信小程序实现元素渐入渐出动画效果封装方法
May 18 #Javascript
微信小程序收货地址API兼容低版本解决方法
May 18 #Javascript
小程序云开发获取不到数据库记录的解决方法
May 18 #Javascript
小程序云开发之用户注册登录
May 18 #Javascript
小程序云开发实现数据库异步操作同步化
May 18 #Javascript
You might like
php面向对象全攻略 (二) 实例化对象 使用对象成员
2009/09/30 PHP
php sybase_fetch_array使用方法
2014/04/15 PHP
destoon二次开发常用数据库操作
2014/06/21 PHP
PHP利用header跳转失效的解决方法
2014/10/24 PHP
PHP创建文件及写入数据(覆盖写入,追加写入)的方法详解
2019/02/15 PHP
PHP 99乘法表的几种实现代码
2020/10/13 PHP
javascript 对象定义方法 简单易学
2009/03/22 Javascript
js 父窗口控制子窗口的行为-打开,关闭,重定位,回复
2010/04/20 Javascript
Mootools 图片展示插件(lightbox,ImageMenu)收集集合
2010/05/21 Javascript
JavaScript正则表达式之multiline属性的应用
2015/06/16 Javascript
JavaScript根据CSS的Media Queries来判断浏览设备的方法
2016/05/10 Javascript
微信小程序 获取微信OpenId详解及实例代码
2016/10/31 Javascript
angularjs中回车键触发某一事件的方法
2017/04/24 Javascript
jquery请求servlet实现ajax异步请求的示例
2017/06/03 jQuery
收藏AngularJS中最重要的核心功能
2017/07/09 Javascript
vue中使用ueditor富文本编辑器
2018/02/08 Javascript
利用jqgrid实现上移下移单元格功能
2018/11/07 Javascript
微信小程序使用setData修改数组中单个对象的方法分析
2018/12/30 Javascript
小程序两种滚动公告栏的实现方法
2019/09/17 Javascript
vue在响应头response中获取自定义headers操作
2020/07/24 Javascript
JS绘图Flot如何实现可选显示曲线图功能
2020/10/16 Javascript
Python获取文件ssdeep值的方法
2014/10/05 Python
Python中使用PIPE操作Linux管道
2015/02/04 Python
分析并输出Python代码依赖的库的实现代码
2015/08/09 Python
根据DataFrame某一列的值来选择具体的某一行方法
2018/07/03 Python
python如何制作缩略图
2019/04/30 Python
Python 元组操作总结
2019/09/18 Python
python实现将json多行数据传入到mysql中使用
2019/12/31 Python
Python3标准库glob文件名模式匹配的问题
2020/03/13 Python
html5调用摄像头功能的实现代码
2018/05/07 HTML / CSS
html5指南-7.geolocation结合google maps开发一个小的应用
2013/01/07 HTML / CSS
超强台风观后感
2015/06/09 职场文书
催款函范文
2015/06/24 职场文书
医疗纠纷调解协议书
2015/08/06 职场文书
企业管理制度设计时要注意的几种“常见病”!
2019/04/19 职场文书
mybatis中注解与xml配置的对应关系和对比分析
2021/08/04 Java/Android