微信小程式 —搜索框

来源:https://www.cnblogs.com/chenXing-blog/archive/2018/08/22/9519934.html
-Advertisement-
Play Games

wxSearch優雅的微信小程式搜索框 一、功能 支持自定義熱門key 支持搜索歷史 支持搜索建議 支持搜索歷史(記錄)緩存 二、使用 1、將wxSearch文件夾整個拷貝到根目錄下 2、引入 3、使用3.1 wxml文件這裡有兩種模板:一種為wxSearch作者提供的模板,另一種是weui提供的模 ...


wxSearch優雅的微信小程式搜索框 
一、功能 
支持自定義熱門key 
支持搜索歷史 
支持搜索建議 
支持搜索歷史(記錄)緩存 
二、使用 
1、將wxSearch文件夾整個拷貝到根目錄下 

2、引入

// wxml中引入模板 
<import src="/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="/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文件中引入。

3.1.3 自定義搜索框如果上面兩種搜索樣式都不喜歡,你也可以自己定義,只需要保證事件的觸發即可。
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 效果圖

三、源碼解讀

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

 

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • CSS權重 CSS權重指的是樣式的優先順序,有兩條或多條樣式作用於一個元素,權重高的那條樣式對元素起作用,權重相同的,後寫的樣式會覆蓋前面寫的樣式。 權重的等級 可以把樣式的應用方式分為幾個等級,按照等級來計算權重 1、!important,加在樣式屬性值後,權重值為 100002、內聯樣式,如:st ...
  • 功能簡介: 不需要藉助百度的語音SDK即可完成,只需要通過前端語言利用頁面獲取用戶語音直接將語音數據發送給後端保存,之後通過條件判斷再將保存好的語言文件地址發送給目標用戶,藉此即可完成用戶之間的單點通信 前端代碼 ...
  • angularjs學習,本次主要學習練習其filter過濾器、limitTo過濾器、orderyBy過濾器,及其自定義過濾器的 ...
  • 以下是我遇到的一些經典的JS面試題,結合我自己的理解寫的詳解,主要參考高程一書,歡迎大家批評指正 1. 答:運行結果為列印undefined。 首先,以上代碼完全運行的話需要引擎,編譯器,作用域的配合操作,(引擎負責整個JavaScript程式的編譯及執行過程,編譯器負責詞法分析及代碼生成等,作用域 ...
  • 代碼如下 <body> <ul style="border: 1px solid blue;height: 60px;width:300px;overflow: hidden;"> <li>aaaaaaaaaaaaaaaaaaaaa</li> <li>bbbbbbbbbbbbbbbbbbbbb</l ...
  • URI URI全稱:Uniform Resource Identifier,中文名為統一資源標識符。用來標識唯一標識互聯網上的信息資源。 Web上可用的所有資源,比如html、圖像、視頻等,都是由URI進行標識。 URI包括URL和URN。 URL URL全稱:Uniform Resource Lo ...
  • 作為前端最火的構建工具,是前端自動化工具鏈 最重要的部分 ,使用門檻較高。本系列是筆者自己的學習記錄,比較基礎,希望通過 問題 + 解決方式 的模式,以前端構建中遇到的具體需求為出發點,學習 工具中相應的處理辦法。(本篇中的參數配置及使用方式均基於 ) 一. CSS文件基本處理需求 假設項目中的CS ...
  • 很多人不明白這個display:flex是到底是什麼東西,如何使用的 。 1.什麼是display:flex呢? 答:flex是 flexible box的縮寫,意為彈性佈局 ;這個東西的引入,為盒模型提供了最大的靈活性!可以相應式的實現各種頁面的佈局。 基本概念 採用flex佈局的元素,稱為fle ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...