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


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 相关文章推荐
accesskey 提交
Jun 26 Javascript
event.srcElement+表格应用
Aug 29 Javascript
javascript 事件绑定问题
Jan 01 Javascript
前后台交互过程中json格式如何解析以及如何生成
Dec 26 Javascript
IE的fireEvent方法概述及应用
Feb 22 Javascript
JS模拟自动点击的简单实例
Aug 08 Javascript
3分钟写出来的Jquery版checkbox全选反选功能
Oct 23 Javascript
JavaScript通过元素索引号删除数组中对应元素的方法
Mar 18 Javascript
js获取腾讯视频ID的方法
Oct 03 Javascript
很棒的一组js图片轮播特效
Jan 12 Javascript
js实现删除li标签一行内容
Apr 16 Javascript
微信小游戏之使用three.js 绘制一个旋转的三角形
Jun 10 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
typecho插件编写教程(六):调用接口
2015/05/28 PHP
PHP通过文件路径获取文件名的实例代码
2018/10/14 PHP
python进程与线程小结实例分析
2018/11/11 PHP
js四舍五入数学函数round使用实例
2014/05/09 Javascript
jQuery插件jFade实现鼠标经过的图片高亮其它变暗
2015/03/14 Javascript
node.js插件nodeclipse安装图文教程
2020/10/19 Javascript
jQuery中借助deferred来请求及判断AJAX加载的实例讲解
2016/05/24 Javascript
nodejs 的 session 简单使用
2016/06/06 NodeJs
JS实现物体带缓冲的间歇运动效果示例
2016/12/22 Javascript
几行js代码实现自适应
2017/02/24 Javascript
基于vue2.x的电商图片放大镜插件的使用
2018/01/22 Javascript
webpack 插件html-webpack-plugin的具体使用
2018/04/09 Javascript
node thread.sleep实现示例
2018/06/20 Javascript
微信小程序实现的点击按钮 弹出底部上拉菜单功能示例
2018/12/20 Javascript
vue 实现强制类型转换 数字类型转为字符串
2019/11/07 Javascript
Js代码中的span拼接问题解决
2019/11/22 Javascript
JavaScript前后端JSON使用方法教程
2020/11/23 Javascript
[02:02]2018DOTA2亚洲邀请赛Mineski赛前采访
2018/04/04 DOTA
[03:00]2018完美盛典_最佳英雄奖
2018/12/17 DOTA
Python使用metaclass实现Singleton模式的方法
2015/05/05 Python
Python如何判断数独是否合法
2016/09/08 Python
Python实现购物车程序
2018/04/16 Python
用python给自己做一款小说阅读器过程详解
2019/07/11 Python
Python K最近邻从原理到实现的方法
2019/08/15 Python
python 实现快速生成连续、随机字母列表
2019/11/28 Python
pytorch梯度剪裁方式
2020/02/04 Python
Ubuntu20.04环境安装tensorflow2的方法步骤
2021/01/29 Python
css3实现一款模仿iphone样式的注册表单
2013/03/20 HTML / CSS
荷兰家电购物网站:Expert.nl
2020/01/18 全球购物
美国折扣地毯销售网站:Rugs.com
2020/03/27 全球购物
将n个数按输入顺序的逆序排列,用函数实现
2012/11/14 面试题
毕业生造价工程师求职信
2013/10/17 职场文书
个人安全生产承诺书
2014/05/22 职场文书
红领巾广播站广播稿
2014/10/19 职场文书
员工2014年度工作总结
2014/12/09 职场文书
Python中json.load()和json.loads()有哪些区别
2021/06/07 Python