結合了微信給的資料,馬馬虎虎摸索出了一些東西,下面說一下微信小程里序搜索歷史功能的實現,下圖是實現效果。

首先,定義歷史記錄的顯示風格和方式,在下用的是列表模式,沒有使用什么比較酷炫的套路。
<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方法名即可。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持錯新站長站。
新聞熱點
疑難解答