微信小程序搜索组件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实现上传图片前的预览(TX的面试题)
Aug 14 Javascript
javascript function、指针及内置对象
Feb 19 Javascript
JS 判断代码全收集
Apr 28 Javascript
基于jquery animate操作css样式属性小结
Nov 27 Javascript
初步使用Node连接Mysql数据库
Mar 03 Javascript
jQuery中each()、find()和filter()等节点操作方法详解(推荐)
May 25 Javascript
vuejs开发组件分享之H5图片上传、压缩及拍照旋转的问题处理
Mar 06 Javascript
AngularJS中$http的交互问题
Mar 29 Javascript
angular+webpack2实战例子
May 23 Javascript
解决ztree搜索中多级菜单展示不全问题
Jul 05 Javascript
javascript浏览器用户代理检测脚本实现方法
Oct 27 Javascript
ionic grid(栅格)九宫格制作详解
Jun 30 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
解析如何屏蔽php中的phpinfo()函数
2013/06/06 PHP
浅谈PHP拦截器之__set()与__get()的理解与使用方法
2016/10/18 PHP
超棒的javascript页面顶部卷动广告效果
2007/12/01 Javascript
jQuery ajax在GBK编码下表单提交终极解决方案(非二次编码方法)
2010/10/20 Javascript
javascript计算当月剩余天数(天数计算器)示例代码
2014/01/09 Javascript
javascript 获取元素样式必杀技
2014/05/04 Javascript
jQuery焦点图轮播特效代码分享(3款)
2015/09/05 Javascript
批量下载对路网图片并生成html的实现方法
2016/06/07 Javascript
多种jQuery绑定事件的实现方式
2016/06/13 Javascript
基于jquery实现弹幕效果
2016/09/29 Javascript
nodejs处理图片的中间件node-images详解
2017/05/08 NodeJs
VueCli3构建TS项目的方法步骤
2018/11/07 Javascript
JavaScript 作用域实例分析
2019/10/02 Javascript
vue根据条件不同显示不同按钮的操作
2020/08/04 Javascript
VSCode下好用的Python插件及配置
2018/04/06 Python
Python实现统计给定字符串中重复模式最高子串功能示例
2018/05/16 Python
对python:threading.Thread类的使用方法详解
2019/01/31 Python
Python 经典算法100及解析(小结)
2019/09/13 Python
Python压缩模块zipfile实现原理及用法解析
2020/08/14 Python
Django解决frame拒绝问题的方法
2020/12/18 Python
HTML5 window/iframe跨域传递消息 API介绍
2013/08/26 HTML / CSS
英国的知名精品百货公司:House of Fraser(福来德)
2016/08/14 全球购物
Under Armour澳大利亚官网:美国知名的高端功能性运动品牌
2018/02/22 全球购物
经济系大学生求职信
2013/10/01 职场文书
最新大学职业规划书范文
2013/12/30 职场文书
城市精细化管理实施方案
2014/03/04 职场文书
《果园机器人》教学反思
2014/04/13 职场文书
派出所班子党的群众路线对照检查材料思想汇报
2014/10/01 职场文书
质量保证书怎么写
2015/02/27 职场文书
地道战观后感300字
2015/06/04 职场文书
疾病证明书
2015/06/19 职场文书
幼儿园托班开学寄语(2016秋季)
2015/12/03 职场文书
SQL 窗口函数实现高效分页查询的案例分析
2021/05/21 SQL Server
详解php中流行的rpc框架
2021/05/29 PHP
python基础之函数的定义和调用
2021/10/24 Python
python通过新建环境安装tfx的问题
2022/05/20 Python