微信小程序搜索组件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 相关文章推荐
JS读取cookies信息(记录用户名)
Jan 10 Javascript
php图像生成函数之间的区别分析
Dec 06 Javascript
jQuery自动切换/点击切换选项卡效果的小例子
Aug 12 Javascript
JS实现仿百度输入框自动匹配功能的示例代码
Feb 19 Javascript
2014 HTML5/CSS3热门动画特效TOP10
Dec 07 Javascript
javascript下拉框选项单击事件的例子分享
Mar 04 Javascript
jQuery的三种bind/One/Live/On事件绑定使用方法
Feb 23 Javascript
node.js遍历目录的方法示例
Aug 01 Javascript
JavaScript实现网页下拉菜单效果
Nov 20 Javascript
element-ui点击查看大图的方法示例
Dec 14 Javascript
前端如何实现动画过渡效果
Feb 05 Javascript
LayUI+Shiro实现动态菜单并记住菜单收展的示例
May 06 Javascript
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
新浪新闻小偷
2006/10/09 PHP
PHP配置文件中最常用四个ini函数
2007/03/19 PHP
PHP数组对比函数,存在交集则返回真,否则返回假
2011/02/03 PHP
PHP stripos()函数及注意事项的分析
2013/06/08 PHP
thinkphp实现数组分页示例
2014/04/13 PHP
php分页函数完整实例代码
2014/09/22 PHP
PHP简单获取网站百度搜索和搜狗搜索收录量的方法
2016/08/23 PHP
关于jQuery参考实例2.0 用jQuery选择元素
2013/04/07 Javascript
在JS数组特定索引处指定位置插入元素
2014/07/27 Javascript
JavaScript中switch判断容易犯错的一个细节
2014/08/27 Javascript
JavaScript中return false的用法
2015/03/12 Javascript
jQuery团购倒计时特效实现方法
2015/05/07 Javascript
Javascript节点关系实例分析
2015/05/15 Javascript
javascript中mouseover、mouseout使用详解
2015/07/19 Javascript
基于JavaScript怎么实现让歌词滚动播放
2015/11/03 Javascript
网页挂马方式整理及详细介绍
2016/11/03 Javascript
详解vuejs之v-for列表渲染
2017/06/22 Javascript
使用elementUI实现将图片上传到本地的示例
2018/09/04 Javascript
ES6 let和const定义变量与常量的应用实例分析
2019/06/27 Javascript
vue 动态组件(component :is) 和 dom元素限制(is)用法说明
2020/09/04 Javascript
Python挑选文件夹里宽大于300图片的方法
2015/03/05 Python
python抽取指定url页面的title方法
2018/05/11 Python
django使用django-apscheduler 实现定时任务的例子
2019/07/20 Python
Python Django 前后端分离 API的方法
2019/08/28 Python
用Python去除图像的黑色或白色背景实例
2019/12/12 Python
Python 实现一个计时器
2020/07/28 Python
django有哪些好处和优点
2020/09/01 Python
加拿大票务网站:Ticketmaster加拿大
2017/07/17 全球购物
文化宣传方案
2014/03/13 职场文书
教研活动总结
2014/04/28 职场文书
副职竞争上岗演讲稿
2014/05/12 职场文书
中小学校园安全广播稿
2014/09/29 职场文书
感恩母亲节活动总结
2015/02/10 职场文书
今日说法观后感
2015/06/08 职场文书
师范生见习自我总结
2015/06/23 职场文书
2016年寒假家长评语
2015/10/10 职场文书