微信小程序搜索组件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中把数字转换为字符串的程序代码
Jun 19 Javascript
JS动态添加与删除select中的Option对象(示例代码)
Dec 20 Javascript
javascript排序函数实现数字排序
Jun 26 Javascript
jquery 实现输入邮箱时自动补全下拉提示功能
Oct 04 Javascript
JS函数定义方式的区别介绍
Mar 22 Javascript
JavaScript Ajax编程 应用篇
Jul 02 Javascript
鼠标经过出现气泡框的简单实例
Mar 17 Javascript
基于JavaScript实现的顺序查找算法示例
Apr 14 Javascript
详解vue2父组件传递props异步数据到子组件的问题
Jun 29 Javascript
在vue中添加Echarts图表的基本使用教程
Nov 22 Javascript
ES6知识点整理之模块化的应用详解
Apr 15 Javascript
如何用webpack4.0撸单页/多页脚手架 (jquery, react, vue, typescript)
Jun 18 jQuery
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的开合式多级菜单程序
2006/10/09 PHP
PHP定时自动生成静态HTML的实现代码
2010/06/20 PHP
浅谈Eclipse PDT调试PHP程序
2014/06/09 PHP
PHP中把有符号整型转换为无符号整型方法
2015/05/27 PHP
(仅IE下有效)关于checkbox 三态
2007/05/12 Javascript
javascript 学习之旅 (3)
2009/02/05 Javascript
JS获取数组最大值、最小值及长度的方法
2015/11/24 Javascript
学习JavaScript设计模式(策略模式)
2015/11/26 Javascript
JavaScript判断用户名和密码不能为空的实现代码
2016/05/16 Javascript
原生js实现手风琴功能(支持横纵向调用)
2017/01/13 Javascript
AngularJS的ng-click传参的方法
2017/06/19 Javascript
Vue2.0权限树组件实现代码
2017/08/29 Javascript
Scala解析Json字符串的实例详解
2017/10/11 Javascript
JavaScript实现数值自动增加动画
2017/12/28 Javascript
手把手教你vue-cli单页到多页应用的方法
2018/05/31 Javascript
JavaScript修改注册表实例代码
2020/01/05 Javascript
Python Web服务器Tornado使用小结
2014/05/06 Python
python字符串连接方式汇总
2014/08/21 Python
Python callable()函数用法实例分析
2018/03/17 Python
Python 删除连续出现的指定字符的实例
2018/06/29 Python
tensorflow实现逻辑回归模型
2018/09/08 Python
python处理两种分隔符的数据集方法
2018/12/12 Python
Django连接数据库并实现读写分离过程解析
2019/11/13 Python
Django实现后台上传并显示图片功能
2020/05/29 Python
CSS3实现时间轴特效
2020/11/02 HTML / CSS
HTML5 Canvas 起步(1) - 基本概念
2009/05/12 HTML / CSS
美体小铺英国官网:The Body Shop英国
2017/01/24 全球购物
英国高街电视:High Street TV
2018/05/22 全球购物
ddl,dml和dcl的含义
2016/05/08 面试题
简述进程的启动、终止的方式以及如何进行进程的查看
2013/07/12 面试题
机电一体化专业求职信
2014/07/22 职场文书
领导班子三严三实对照检查材料
2014/09/25 职场文书
人才市场接收函
2015/01/30 职场文书
婚庆开业庆典主持词
2015/06/30 职场文书
2016优秀员工先进事迹材料
2016/02/25 职场文书
珍惜时间的诗歌赏析
2019/08/23 职场文书