微信小程式搜尋元件wxSearch
阿新 • • 發佈:2019-01-01
wxSearch優雅的微信小程式搜尋框
一、功能
支援自定義熱門key
支援搜尋歷史
支援搜尋建議
支援搜尋歷史(記錄)快取
二、使用
1、將wxSearch資料夾整個拷貝到根目錄下
2、引入
// wxml中引入模板
<import src="/wxSearch/wxSearch.wxml"/>
<template is="wxSearch" data="{{wxSearchData}}"/>
// wxss中引入 @import "/wxSearch/wxSearch.wxss";
3、使用3.1 wxml檔案這裡有兩種模板:一種為wxSearch作者提供的模板,另一種是weui提供的模板。
3.1.1 第一種模板
// wxSearch作者提供的模板
<import src="/wxSearch/wxSearch.wxml"/>
<view class="wxSearch-section">
<view class="wxSearch-pancel">
<input bindinput="wxSearchInput" bindfocus="wxSerchFocus" value="{{wxSearchData.value}}" bindblur="wxSearchBlur" class="wxSearch-input" placeholder ="搜尋" />
<button class="wxSearch-button" bindtap="wxSearchFn" size="mini" plain="true">搜尋</button>
</view>
</view>
<template is="wxSearch" data="{{wxSearchData}}"/>
3.1.2 第二種模板
<import src="../../wxSearch/wxSearch.wxml" />
<view class="weui-search-bar" >
<view class="weui-search-bar__form">
<view class="weui-search-bar__box">
<icon class="weui-icon-search_in-box" type="search" size="14"></icon>
<input type="text" class="weui-search-bar__input" placeholder="搜尋" value="{{wxSearchData.value}}" bindfocus="wxSerchFocus" bindinput="wxSearchInput" bindblur="wxSearchBlur" />
<view class="weui-icon-clear" wx:if="{{inputVal.length > 0}}" bindtap="clearInput">
<icon type="clear" size="14"></icon>
</view>
</view>
</view>
</view>
<template is="wxSearch" data="{{wxSearchData}}" />
注意:此模板需要使用weui.wxss檔案,請在app.wxss檔案中引入。
搜尋框效果圖2.png
3.1.3 自定義搜尋框如果上面兩種搜尋樣式都不喜歡,你也可以自己定義,只需要保證事件的觸發即可。
// 搜尋輸入框需要保證下面三個事件的書寫正確
<input bindfocus="wxSerchFocus" bindinput="wxSearchInput" bindblur="wxSearchBlur" />
// 搜尋按鈕的事件 <button bindtap="wxSearchFn"/>
3.2 js檔案
wxSearchFn: function(e){
var that = this
WxSearch.wxSearchAddHisKey(that);
},
wxSearchInput: function(e){
var that = this
WxSearch.wxSearchInput(e,that);
},
wxSerchFocus: function(e){
var that = this
WxSearch.wxSearchFocus(e,that);
},
wxSearchBlur: function(e){
var that = this
WxSearch.wxSearchBlur(e,that);
},
wxSearchKeyTap:function(e){
var that = this
WxSearch.wxSearchKeyTap(e,that);
},
wxSearchDeleteKey: function(e){
var that = this
WxSearch.wxSearchDeleteKey(e,that);
},
wxSearchDeleteAll: function(e){
var that = this;
WxSearch.wxSearchDeleteAll(that);
},
wxSearchTap: function(e){
var that = this
WxSearch.wxSearchHiddenPancel(that);
}
3.3 效果圖
三、原始碼解讀
module.exports = {
init: init,
initColor: initColors,
initMindKeys: initMindKeys,
wxSearchInput: wxSearchInput,
wxSearchFocus: wxSearchFocus,
wxSearchBlur: wxSearchBlur,
wxSearchKeyTap: wxSearchKeyTap,
wxSearchAddHisKey:wxSearchAddHisKey,
wxSearchDeleteKey:wxSearchDeleteKey,
wxSearchDeleteAll:wxSearchDeleteAll,
wxSearchHiddenPancel:wxSearchHiddenPancel
}
init 初始化wxSearch
引數:that var that = this後傳入即可
barHeight 搜尋框高度 根據你設定的搜尋框高度進行設定
keys 陣列 熱門搜尋的顯示內容
isShowKey 是否顯示熱門搜尋 預設顯示(false即可不顯示)
isShowHis 是否顯示歷史搜尋 預設顯示(false即可不顯示)
callBack 回撥函式
原始碼做了什麼
初始化了wxSearchData的內容
wxSearchData:{
view:{
isShow: false, //是否顯示搜尋介面,預設隱藏,當輸入框獲取焦點時顯示
searchbarHeght: 20, //根據手機螢幕高度和傳入的barHeight進行計算
isShowSearchKey: true, //預設為true
isShowSearchHistory: true, //預設為true }
keys:[],//自定義熱門搜尋,傳入的keys
his:[],//歷史搜尋關鍵字,從快取中獲取
value: '' // 搜尋內容 }
wxSearch.init(that, barHeight, keys, isShowKey, isShowHis, callBack);
initMindKeys 初始化mindKeys
// mindKeys即為所要檢索內容的集合 var mindKeys = ['weappdev.com','微信小程式開發','微信開發','微信小程式']; WxSearch.initMindKeys(mindKeys);
其他事件函式不再贅述,可能會有一些bug,可以根據情況自己進行修改。