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


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 相关文章推荐
jQuery Tools tab(幻灯片)
Jul 14 Javascript
javascript检测页面是否缩放的小例子
May 16 Javascript
js判断运行jsp页面的浏览器类型以及版本示例
Oct 30 Javascript
js实现日历可获得指定日期周数及星期几示例分享(js获取星期几)
Mar 14 Javascript
jquery结合CSS使用validate实现漂亮的验证
Jan 29 Javascript
Node.js实现数据推送
Apr 14 Javascript
浅谈javascript:两种注释,声明变量,定义函数
Sep 29 Javascript
如何提高Dom访问速度
Jan 05 Javascript
Node 搭建一个静态资源服务器的实现
May 20 Javascript
VUE+elementui组件在table-cell单元格中绘制微型echarts图
Apr 20 Javascript
JS实现前端路由功能示例【原生路由】
May 29 Javascript
jQuery是用来干什么的 jquery其实就是一个js框架
Feb 04 jQuery
微信小程序云开发修改云数据库中的数据方法
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 高手之路(一)
2006/10/09 PHP
PHP的FTP学习(一)
2006/10/09 PHP
浅谈PHP中JSON数据操作
2015/07/01 PHP
php利用ob_start()清除输出和选择性输出的方法
2018/01/18 PHP
jquery blockUI 遮罩不能消失与不能提交的解决方法
2011/09/17 Javascript
imgAreaSelect 中文文档帮助说明
2011/10/08 Javascript
jQuery fadeTo方法调整图片的透明度使用介绍
2013/05/06 Javascript
使用firebug进行调试javascript的示例
2013/12/16 Javascript
jQuery实现购物车数字加减效果
2015/03/14 Javascript
JS实现点击按钮后框架内载入不同网页的方法
2015/05/05 Javascript
js实现当前输入框高亮显示的方法
2015/08/19 Javascript
JS弹出层遮罩,隐藏背景页面滚动条细节优化分析
2016/04/29 Javascript
JS实现密码框的显示密码和隐藏密码功能示例
2016/12/26 Javascript
AngularJS $http模块POST请求实现
2017/04/08 Javascript
vue轮播图插件vue-awesome-swiper的使用代码实例
2017/07/10 Javascript
vue单页应用加百度统计代码(亲测有效)
2018/01/31 Javascript
vue实现通讯录功能
2018/07/14 Javascript
vue3修改link标签默认icon无效问题详解
2019/10/09 Javascript
JavaScript代码简化技巧实例解析
2020/09/09 Javascript
Python高级用法总结
2018/05/26 Python
浅谈Pandas Series 和 Numpy array中的相同点
2019/06/28 Python
python实现知乎高颜值图片爬取
2019/08/12 Python
Python3实现二叉树的最大深度
2019/09/30 Python
关于Python 常用获取元素 Driver 总结
2019/11/24 Python
PyCharm汉化安装及永久激活详细教程(靠谱)
2020/01/16 Python
pyMySQL SQL语句传参问题,单个参数或多个参数说明
2020/06/06 Python
Python进行特征提取的示例代码
2020/10/15 Python
使用CSS3编写灰阶滤镜来制作黑白照片效果的方法
2016/05/09 HTML / CSS
巴西图书和电子产品购物网站:Saraiva
2017/06/07 全球购物
速卖通欧盟:Aliexpress EU
2020/08/19 全球购物
计算机专业优秀大学生自我总结
2014/01/21 职场文书
办公室班子四风问题对照检查材料
2014/10/04 职场文书
2014年稽查工作总结
2014/12/20 职场文书
Spring Boot接口定义和全局异常统一处理
2022/04/20 Java/Android
详细介绍MySQL中limit和offset的用法
2022/05/06 MySQL
netty 实现tomcat的示例代码
2022/06/05 Servers