微信小程序 —搜索框

摘要:
3.1.3自定义搜索框如果上面两种搜索样式都不喜欢,你也可以自己定义,只需要保证事件的触发即可。

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

微信小程序 —搜索框第1张

2、引入

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

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

3.1.1 第一种模板

//wxSearch作者提供的模板 
<import src="http://t.zoukankan.com/wxSearch/wxSearch.wxml"/> 
<view class="wxSearch-section">    
<view class="wxSearch-pancel">        
<input bindinput="wxSearchInput" bindfocus="wxSerchFocus" value="{{wxSearchData.value}}" bindblur="wxSearchBlur"   placeholder="搜索" />        
<button   bindtap="wxSearchFn" size="mini" plain="true">搜索</button>    
</view> 
</view> 
<template is="wxSearch" data="{{wxSearchData}}"/>

3.1.2 第二种模板

<import src="http://t.zoukankan.com/wxSearch/wxSearch.wxml"  /> 
<view class="weui-search-bar">  
 <view class="weui-search-bar__form">      
  <view class="weui-search-bar__box">          
   <icon   type="search" size="14"></icon>          
    <input type="text"   placeholder="搜索" value="{{wxSearchData.value}}"                 bindfocus="wxSerchFocus" bindinput="wxSearchInput" bindblur="wxSearchBlur"  />          
   <view   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文件中引入。

3.1.3 自定义搜索框如果上面两种搜索样式都不喜欢,你也可以自己定义,只需要保证事件的触发即可。
3.2 js文件
wxSearchFn: function(e){
    var that = thisWxSearch.wxSearchAddHisKey(that);
  },
  wxSearchInput: function(e){
    var that = thisWxSearch.wxSearchInput(e,that);
  },
  wxSerchFocus: function(e){
    var that = thisWxSearch.wxSearchFocus(e,that);
  },
  wxSearchBlur: function(e){
    var that = thisWxSearch.wxSearchBlur(e,that);
  },
  wxSearchKeyTap:function(e){
    var that = thisWxSearch.wxSearchKeyTap(e,that);
  },
  wxSearchDeleteKey: function(e){
    var that = thisWxSearch.wxSearchDeleteKey(e,that);
  },
  wxSearchDeleteAll: function(e){
    var that = this;
    WxSearch.wxSearchDeleteAll(that);
  },
  wxSearchTap: function(e){
    var that = thisWxSearch.wxSearchHiddenPancel(that);
  }

3.3 效果图

微信小程序 —搜索框第2张

三、源码解读

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);
四、源码地址 https://github.com/xingzaihahaha/wx.search
五、搜索框案例 https://github.com/xingzaihahaha/-/commits?author=xingzaihahaha

免责声明:文章转载自《微信小程序 —搜索框》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇SQL Server在本地计算机上用SSMS(SQL Server Management Studio)登录不上,错误消息:(Microsoft SQL Server, Error: 18456)Spring Boot GraphQL 实战 03_分页、全局异常处理和异步加载下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

微信小程序仿系统预览大图功能

问题:微信小程序系统自带的 wx.previewImage 预览大图功能很好用,用起来很顺畅丝滑,但是有一个致命问题:预览大图的时候是在新页面中打开,当前页面的生命周期会销毁,如果当前页面中没有实时的东西还好,但如果有类似 <live_player> <live_push> <video> 等组件,或者有计时器之类的变量...

微信小程序通过background-image设置背景图片

微信小程序通过background-image设置背景:只支持线上图片和base64图片,不支持本地图片;base64图片设置步骤如下:1.在网站http://imgbase64.duoshitong.com/上将图片转成base64格式的文本 2.在WXSS中使用以上文本:background-image: url("data:image/png;bas...

微信小程序开发五:案例实践

5.1天气预报 在这一节中,我们将开发一个天气预报的小程序,使用的数据接口为百度天气预报的接口,该接口可以根据经纬度坐标查询所在地天气。准备工作使用百度接口需要预先申请。在本书第4章中有百度ak的申请方法以及百度天气预报接口介绍。所不同的是第4章使用城市名称查询天气,而本节中使用坐标进行查询。在小程序中,将会向该地址发起请求,需要预先将百度接口所在域...

微信小程序-wxml模板页面逻辑运算

通常在utils中创建一个.wxs后缀的文件(例如:fn.wxs) function addition(a,b){ return Number(a)+Number(b); } module.exports = { addition:addition, } 需要逻辑运算的wxml页面 <wxs src="http://t.zoukankan.co...

微信小程序: 使用本地缓存

参考:https://www.bilibili.com/video/BV1RK4y1v7zv?p=19&spm_id_from=pageDriver import { request } from "../../request/index.js"; //必须全路径 Page({ /** * 页面的初始数据 */data: {...

「微信云托管」首篇实战|极简DEMO入门

一、项目介绍 此项目基于微信云托管能力范围编写,构建了一个简单的 WEB 后端服务,统计 WEB 网页的访问日志,并保存至 serverless 形态的 mysql 数据库中,然后在小程序中调用服务接口,获得访问次数。 项目包含微信云托管在单体运行中的基础能力使用,包含基础容器、mysql、微信小程序调用等。 项目技术栈:后端服务(nodejs + exp...