微信小程序搜索组件wxSearch实例详解


Posted in Javascript onJune 08, 2017

wxSearch优雅的微信小程序搜索框

一、功能

支持自定义热门key
支持搜索历史
支持搜索建议
支持搜索历史(记录)缓存

二、使用

1、将wxSearch文件夹整个拷贝到根目录下
2、引入

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

微信小程序搜索组件wxSearch实例详解

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文件中引入。

微信小程序搜索组件wxSearch实例详解

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 效果图

微信小程序搜索组件wxSearch实例详解

三、源码解读

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,可以根据情况自己进行修改。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
JavaScript 对象、函数和继承
Jul 07 Javascript
JavaScript控制table某列不显示的方法
Mar 16 Javascript
jQuery中cookie插件用法实例分析
Dec 04 Javascript
简单了解JavaScript操作XPath的一些基本方法
Jun 03 Javascript
学习Angularjs分页指令
Jul 01 Javascript
vue axios请求超时的正确处理方法
Apr 02 Javascript
微信小程序自定义组件的实现方法及自定义组件与页面间的数据传递问题
Oct 09 Javascript
Node.js JSON模块用法实例分析
Jan 04 Javascript
JS实现数组去重,显示重复元素及个数的方法示例
Jan 21 Javascript
深入学习JavaScript 高阶函数
Jun 11 Javascript
Swiper.js实现移动端元素左右滑动
Sep 08 Javascript
Vue+Element UI实现概要小弹窗的全过程
May 30 Vue.js
JS去掉字符串前后空格、阻止表单提交的实现代码
Jun 08 #Javascript
angular实现图片懒加载实例代码
Jun 08 #Javascript
微信小程序日历组件calendar详解及实例
Jun 08 #Javascript
php简单数据库操作类的封装
Jun 08 #Javascript
ReactJs设置css样式的方法
Jun 08 #Javascript
requirejs按需加载angularjs文件实例
Jun 08 #Javascript
简单谈谈关于 npm 5.0 的新坑
Jun 08 #Javascript
You might like
php将会员数据导入到ucenter的代码
2010/07/18 PHP
Symfony模板的快捷变量用法实例
2016/03/17 PHP
laravel 5.1下php artisan migrate的使用注意事项总结
2017/06/07 PHP
PHP实现统计所有字符在字符串中出现次数的方法
2017/10/17 PHP
JQuery 插件模板 制作jquery插件的朋友可以参考下
2010/03/17 Javascript
来自国外的14个图片放大编辑的jQuery插件整理
2010/10/20 Javascript
Javascript事件热键兼容ie|firefox
2010/12/30 Javascript
回车直接实现点击某按钮的效果即触发单击事件
2014/02/27 Javascript
js实现图片上传并正常显示
2015/12/19 Javascript
深入理解react-router@4.0 使用和源码解析
2017/05/23 Javascript
详解微信小程序中的页面代码中的模板的封装
2017/10/12 Javascript
JavaScript的词法结构精华篇
2018/10/17 Javascript
json.stringify()与json.parse()的区别以及用处
2021/01/25 Javascript
python对html代码进行escape编码的方法
2015/05/04 Python
python使用pil生成图片验证码的方法
2015/05/08 Python
Python解析excel文件存入sqlite数据库的方法
2016/11/15 Python
Python 中迭代器与生成器实例详解
2017/03/29 Python
Python爬虫番外篇之Cookie和Session详解
2017/12/27 Python
python+pillow绘制矩阵盖尔圆简单实例
2018/01/16 Python
Python使用sklearn库实现的各种分类算法简单应用小结
2019/07/04 Python
Python 实现将数组/矩阵转换成Image类
2020/01/09 Python
jupyter实现重新加载模块
2020/04/16 Python
python如何操作mysql
2020/08/17 Python
CSS3中线性颜色渐变的一些实现方法
2015/07/14 HTML / CSS
eBay德国站:eBay.de
2017/09/14 全球购物
定制iPhone和Macbook保护壳:Slick Case
2018/11/21 全球购物
三星新西兰官网:Samsung新西兰
2019/03/05 全球购物
在C语言中实现抽象数据类型什么方法最好
2014/06/26 面试题
大学团支书的自我评价分享
2013/12/14 职场文书
大专会计自我鉴定
2014/02/06 职场文书
学雷锋月活动总结
2014/04/25 职场文书
保安2014年终工作总结
2014/12/06 职场文书
公务员年终个人总结
2015/02/12 职场文书
少先队中队工作总结
2015/08/14 职场文书
嵌入式Redis服务器在Spring Boot测试中的使用教程
2021/07/21 Redis
Go语言测试库testify使用学习
2022/07/23 Golang