实现 Material Design 的搜索框效果及关键字搜索功能

阅读时长 6 分钟读完

Material Design 是 Google 推出的一种新的设计语言,它以平面化、简洁、清晰为特点,受到了广泛关注和应用。本文将以实现 Material Design 的搜索框效果及关键字搜索功能为例,介绍如何用前端技术实现。

实现思路

Material Design 的搜索框效果通常包含以下几个要素:

  1. 搜索框的边框和背景色
  2. 搜索框内的提示文字和清除按钮
  3. 点击搜索按钮或按下回车键触发搜索功能

关键字搜索功能则需要监听输入框的变化,实时展现搜索结果。

综合考虑,我们可以采用如下实现思路:

  1. 使用 HTML/CSS 实现搜索框的样式
  2. 使用 JavaScript 监听搜索框的变化,实时获取并展示搜索结果
  3. 添加搜索按钮及回车键的监听,触发搜索功能

下面分别介绍具体实现步骤。

实现步骤

HTML/CSS 实现搜索框样式

为了实现 Material Design 的效果,我们需要定义搜索框的边框和背景色,以及搜索框内的提示文字和清除按钮。

-- -------------------- ---- -------
----------------- -
  --------- ---------
  ------ ------
  ------- -----
  ------- --- ----- -----
  -------------- -----
  ----------------- -----
  --------- -------
-

----------------- ---------------- -
  ------ -----
  ------- -----
  ------- -----
  ----------------- ------------
  -------- -----
  ---------- -----
  ------ -----
-

----------------- ---------------------- -
  -------- -----
-

----------------- -------------- -
  --------- ---------
  ---- --
  ------ --
  ------ -----
  ------- -----
  ------- -----
  ----------------- ------------
  ------ -----
  ---------- -----
  ------- --------
-

----------------- -------------------- -
  ------ -----
-
展开代码

以上代码实现了一个带提示文字和清除按钮的搜索框,但还没有实现搜索功能和关键字搜索,接下来我们利用 JavaScript 实现。

JavaScript 实现搜索功能和关键字搜索

我们可以使用 keyup 事件监听搜索框的变化,每次变化时获取输入框的值,通过 AJAX 请求后端 API 获取搜索结果,并展示在搜索框下方。

-- -------------------- ---- -------
----- ----------- - ----------------------------------------
----- ------------ - -----------------------------------------
----- ------------- - ------------------------------------------

----- ------ - -- -- -
  ----- ----- - ------------------
  -- ------- -
    -- ---- ---- --- ------
    -- -------
  - ---- -
    ----------------------- - ---
  -
--

------------------------------------- -- -- -
  ---------
---

-------------------------------------- -- -- -
  ---------
---
展开代码

以上代码实现了监听搜索框变化并实时展示搜索结果的功能,但还没有实现关键字搜索。下面我们为输入框添加 input 事件监听,每次输入时触发搜索。

为了防止频繁触发搜索,可以采用节流函数的方式,例如使用 lodashthrottle 函数:

最后,展示搜索结果及搜索框下划线的部分可以使用 CSS 实现。

-- -------------------- ---- -------
--------------- -
  --------- ---------
  ---- -----
  ----- --
  ------ ------
  ----------- ------
  ----------- -----
  ------- --- ----- -----
  -------------- - - ---- -----
  ----------------- -----
  -------- ----
-

--------------- - -
  -------- ------
  -------- -----
  ---------- -----
  ------ -----
  ---------------- -----
-

--------------- ------- -
  ----------------- --------
-

----------------- ---------------------- - ---------- -
  ------ -----
-

----------------- ---------- -
  --------- ---------
  ------- --
  ----- --
  ------ --
  ------- ----
  ----------------- -----
  ----------- ----- -----
-
展开代码

到此为止,我们已经成功实现了 Material Design 的搜索框效果及关键字搜索功能,并通过 HTML、CSS 和 JavaScript 技术实现了搜索框样式、事件监听、搜索请求等功能。

示例代码

示例代码可以参考代码仓库:https://github.com/wsyxbcl/material-search-box

以上代码仅为示例,具体实现应根据业务需求进行修改和优化。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67b81c8b306f20b3a659e1a4

纠错
反馈

纠错反馈