wxSearch优雅的微信小程序搜索框 
一、功能 
支持自定义热门key 
支持搜索历史 
支持搜索建议 
支持搜索历史(记录)缓存 
二、使用 
1、将wxSearch文件夹整个拷贝到根目录下 

2、引入

  1. // wxml中引入模板
  2. <import src="/wxSearch/wxSearch.wxml"/>
  3. <template is="wxSearch" data="{{wxSearchData}}"/>
  4. // wxss中引入 @import "/wxSearch/wxSearch.wxss";

 

3、使用3.1 wxml文件这里有两种模板:一种为wxSearch作者提供的模板,另一种是weui提供的模板。

3.1.1 第一种模板

  1. // wxSearch作者提供的模板
  2. <import src="/wxSearch/wxSearch.wxml"/>
  3. <view class="wxSearch-section">
  4. <view class="wxSearch-pancel">
  5. <input bindinput="wxSearchInput" bindfocus="wxSerchFocus" value="{{wxSearchData.value}}" bindblur="wxSearchBlur" class="wxSearch-input" placeholder="搜索" />
  6. <button class="wxSearch-button" bindtap="wxSearchFn" size="mini" plain="true">搜索</button>
  7. </view>
  8. </view>
  9. <template is="wxSearch" data="{{wxSearchData}}"/>

 

3.1.2 第二种模板

  1. <import src="../../wxSearch/wxSearch.wxml" />
  2. <view class="weui-search-bar">
  3. <view class="weui-search-bar__form">
  4. <view class="weui-search-bar__box">
  5. <icon class="weui-icon-search_in-box" type="search" size="14"></icon>
  6. <input type="text" class="weui-search-bar__input" placeholder="搜索" value="{{wxSearchData.value}}" bindfocus="wxSerchFocus" bindinput="wxSearchInput" bindblur="wxSearchBlur" />
  7. <view class="weui-icon-clear" wx:if="{{inputVal.length > 0}}" bindtap="clearInput">
  8. <icon type="clear" size="14"></icon>
  9. </view>
  10. </view>
  11. </view>
  12. </view>
  13. <template is="wxSearch" data="{{wxSearchData}}" />

 

注意:此模板需要使用weui.wxss文件,请在app.wxss文件中引入。

3.1.3 自定义搜索框如果上面两种搜索样式都不喜欢,你也可以自己定义,只需要保证事件的触发即可。
3.2 js文件
  1. wxSearchFn: function(e){
  2. var that = this
  3. WxSearch.wxSearchAddHisKey(that);
  4. },
  5. wxSearchInput: function(e){
  6. var that = this
  7. WxSearch.wxSearchInput(e,that);
  8. },
  9. wxSerchFocus: function(e){
  10. var that = this
  11. WxSearch.wxSearchFocus(e,that);
  12. },
  13. wxSearchBlur: function(e){
  14. var that = this
  15. WxSearch.wxSearchBlur(e,that);
  16. },
  17. wxSearchKeyTap:function(e){
  18. var that = this
  19. WxSearch.wxSearchKeyTap(e,that);
  20. },
  21. wxSearchDeleteKey: function(e){
  22. var that = this
  23. WxSearch.wxSearchDeleteKey(e,that);
  24. },
  25. wxSearchDeleteAll: function(e){
  26. var that = this;
  27. WxSearch.wxSearchDeleteAll(that);
  28. },
  29. wxSearchTap: function(e){
  30. var that = this
  31. WxSearch.wxSearchHiddenPancel(that);
  32. }

 

3.3 效果图

三、源码解读

  1. module.exports = {
  2. init: init,
  3. initColor: initColors,
  4. initMindKeys: initMindKeys,
  5. wxSearchInput: wxSearchInput,
  6. wxSearchFocus: wxSearchFocus,
  7. wxSearchBlur: wxSearchBlur,
  8. wxSearchKeyTap: wxSearchKeyTap,
  9. wxSearchAddHisKey:wxSearchAddHisKey,
  10. wxSearchDeleteKey:wxSearchDeleteKey,
  11. wxSearchDeleteAll:wxSearchDeleteAll,
  12. wxSearchHiddenPancel:wxSearchHiddenPancel
  13. }
  14. init 初始化wxSearch
  15. 参数:that var that = this后传入即可
  16. barHeight 搜索框高度 根据你设定的搜索框高度进行设定
  17. keys 数组 热门搜索的显示内容
  18. isShowKey 是否显示热门搜索 默认显示(false即可不显示)
  19. isShowHis 是否显示历史搜索 默认显示(false即可不显示)
  20. callBack 回调函数
  21. 源码做了什么
  22. 初始化了wxSearchData的内容
  23. wxSearchData:{
  24. view:{
  25. isShow: false, //是否显示搜索界面,默认隐藏,当输入框获取焦点时显示
  26. searchbarHeght: 20, //根据手机屏幕高度和传入的barHeight进行计算
  27. isShowSearchKey: true, //默认为true
  28. isShowSearchHistory: true, //默认为true }
  29. keys:[],//自定义热门搜索,传入的keys
  30. his:[],//历史搜索关键字,从缓存中获取
  31. value: \'\' // 搜索内容 }
  32. wxSearch.init(that, barHeight, keys, isShowKey, isShowHis, callBack);
  33. initMindKeys 初始化mindKeys
  34. // mindKeys即为所要检索内容的集合 var mindKeys = [\'weappdev.com\',\'微信小程序开发\',\'微信开发\',\'微信小程序\']; WxSearch.initMindKeys(mindKeys);

    四、源码地址 https://github.com/xingzaihahaha/wx.search
    五、搜索框案例 https://github.com/xingzaihahaha/-/commits?author=xingzaihahaha

 

 

 

版权声明:本文为chenXing-blog原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/chenXing-blog/p/9519934.html