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


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 相关文章推荐
网页的标准,IMG不支持onload标签怎么办
Jun 29 Javascript
javascript 限制输入脚本大全
Nov 03 Javascript
三种检测iPhone/iPad设备方向的方法
Apr 23 Javascript
js和jquery设置disabled属性为true使按钮失效
Aug 07 Javascript
jQuery使用before()和after()在元素前后添加内容的方法
Mar 26 Javascript
javascript实现控制文字大中小显示
Apr 28 Javascript
javascript实现的图片切割多块效果实例
May 07 Javascript
JQuery中DOM加载与事件执行实例分析
Jun 13 Javascript
JS实现table表格数据排序功能(可支持动态数据+分页效果)
May 26 Javascript
AngularJS延迟加载html template
Jul 27 Javascript
微信小程序使用video组件播放视频功能示例【附源码下载】
Dec 08 Javascript
element-ui中Table表格省市区合并单元格的方法实现
Aug 07 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中文件读、写、删的操作(PHP中对文件和目录操作)
2012/03/06 PHP
php 判断网页是否是utf8编码的方法
2014/06/06 PHP
浅谈javascript 面向对象编程
2009/10/28 Javascript
两个select之间option的互相添加操作(jquery实现)
2009/11/12 Javascript
Visual Studio中的jQuery智能提示设置方法
2010/03/27 Javascript
与jquery serializeArray()一起使用的函数,主要来方便提交表单
2011/01/31 Javascript
标题过长使用javascript按字节截取字符串
2014/04/24 Javascript
javascript实现模拟时钟的方法
2015/05/13 Javascript
JavaScript实现带缓冲效果的随屏滚动漂浮广告代码
2015/11/06 Javascript
jQuery animate和CSS3相结合实现缓动追逐效果附源码下载
2016/04/18 Javascript
在windows上用nodejs搭建静态文件服务器的简单方法
2016/08/11 NodeJs
AngularJS  $on、$emit和$broadcast的使用
2016/09/05 Javascript
禁用backspace网页回退功能的实现代码
2016/11/15 Javascript
jQuery实现一个简单的验证码功能
2017/06/26 jQuery
vuejs手把手教你写一个完整的购物车实例代码
2017/07/06 Javascript
vue实现直播间点赞飘心效果的示例代码
2019/09/20 Javascript
layui之数据表格--与后台交互获取数据的方法
2019/09/29 Javascript
关于vue3.0中的this.$router.replace({ path: '/'})刷新无效果问题
2020/01/16 Javascript
jquery实现简单拖拽效果
2020/07/20 jQuery
Python 学习笔记
2008/12/27 Python
Python实现全角半角字符互转的方法
2016/11/28 Python
python绘制多个曲线的折线图
2020/03/23 Python
Python 通过调用接口获取公交信息的实例
2018/12/17 Python
在Pycharm中设置默认自动换行的方法
2019/01/16 Python
python的pstuil模块使用方法总结
2019/07/26 Python
PYTHON绘制雷达图代码实例
2019/10/15 Python
python文字转语音实现过程解析
2019/11/12 Python
Python3并发写文件与Python对比
2019/11/20 Python
详解python破解zip文件密码的方法
2020/01/13 Python
python使用pandas抽样训练数据中某个类别实例
2020/02/28 Python
matplotlib.pyplot.matshow 矩阵可视化实例
2020/06/16 Python
通信工程毕业生自荐信
2013/11/01 职场文书
教师党性分析材料
2014/02/04 职场文书
党员领导干部民主生活会批评与自我批评发言
2014/09/28 职场文书
sql查询结果列拼接成逗号分隔的字符串方法
2021/05/25 SQL Server
图解排序算法之希尔排序Java实现
2021/06/26 Java/Android