13个有用的HTML5、CSS3和jQuery搜索表单教程
添加搜素框或网站搜索功能是为了方便用户能够轻松、快捷地找到自己需要的信息。因此,在网站中添加一个搜索框已经成为网页设计的主流元素之一。添加一个搜索框到网站会使得用户界面更加友好,也能帮助用户轻松愉快地浏览。
下面,小编收集了13个有用的CSS3,HTML5和jQuery搜索表单脚本来帮助大家从头开始创建一个搜索框。希望能够帮助到大家,让我们一起来看看吧!
脉动的CSS3输入搜索框
输入搜索框带有边框和类似脉冲的阴影跳动。
纯CSS的建议搜索框
这是一个使用纯CSS构建扩展建议搜索框的简单教程。
CSS的扩大搜索框
扩大搜索框是一个点击或输入东西时会变宽的一个简单搜索框。
使用CSS转换扩大搜索栏
我们将利用CSS转换扩展了的搜索栏。搜索栏最初在视图中隐藏的,当点击搜索标签时它能顺利地扩展到视图。
在CSS客户端全文检索
使用指数化数据属性、动态样式和CSS3选择器的搜索功能,可以直接实现在CSS的全文检索,而不是JavaScript客户端。
用CSS3和HTML创建搜索框下拉菜单
在本教程中,我们将创建一个平面式的导航和Square UI的搜索下拉菜单。
如何编写一个扩展HTML5/ CSS3的搜索输入字段
在本教程中我们使用两种不同的方法来构建一个扩大搜索字段。
花式搜索框
这是一个奇特的搜索框,非常有意思!
搜索栏动画CriteriaSearchBox
一种提示选择搜索,像商店类别的搜索框。
jQuery和CSS3的\”下一步级别\”动画搜索表单基本的jQuery搜索/过滤器灵活的搜索框
一个灵活的搜索输入和内部固定宽度的提交按钮来固定边界的宽度。
本站文章除注明转载外,均为本站原创或翻译
python爬虫Selenium库详细教程
在我们爬取网页过程中,经常发现我们想要获得的数据并不能简单的通过解析HTML代码获取
1. 使用示例
2. 详细介绍
2.1 声明浏览器对象
2.2 访问页面
2.3 查找元素
2.3.1 单个元素
下面是详细的元素查找方法
第二种:
2.3.2 多个元素
2.4 元素交互操作
比如说在搜索框内输入文字:
2.5 交互动作
2.6 执行JavaScript
比如拖拽下拉
2.7 获取元素信息
2.7.1 获取属性
2.8 Frame
2.9 等待
2.9.1 隐式等待
需要特别说明的是:
2.9.2 显式等待
2.10 浏览器的前进/后退
2.11 对Cookies进行操作
2.12 选项卡管理
就可以使用selenium来实现。
使用Astro、Qwik 和 Fuse.js构建网站搜索
利用 Astro 的内容集合、静态端点和 Qwik 的 Astro 集成以及 Fuse.js,构建网站搜索功能的方法。
译自 How to Build Site Search with Astro, Qwik and Fuse.js,作者 Paul Scanlon 是一名资深软件工程师、独立开发者倡导者和技术作家。更多关于 Paul 的内容可在他的网站 paulie.dev 上找到。
在这篇文章中,我将解释如何利用Astro的内容集合、静态端点以及Qwik与Fuse.js的Astro集成来构建站点搜索。
我已经准备了一个演示站点和开源仓库,你可以在以下链接找到:
Astro提供了一种方便的方式来“批量”查询或转换相似类型的内容。在我的演示中,这将适用于所有以MDX格式编写的博客文章。所有博客文章都共享相同的模板或布局和模式。以下是博客文章的模式。
你可以在这里看到存储库中的src:src/content/config.js。
为了更加保险,这里是我一篇博客文章的前置元数据(但所有博客文章将使用相同的模式)。
你可以在存储库中查看源代码:the-qwik-astro-audiofeed-experiment.mdx。
为了构建站点搜索功能,我首先需要查询所有的博客文章。我使用了一个静态端点来实现这一点。我称之为 all-content.json.js,它位于 src/pages 目录中。例如:
一旦我使用 getCollection(\’posts\’) 查询了所有的博客文章,我会快速过滤掉可能处于草稿模式的任何博客文章,然后仅返回对搜索有用的前置元数据字段,并按日期排序。
结果被字符串化并作为标准响应返回。
以下是结果的样式。
你可以在这里看到存储库中的源代码:src/pages/all-content.json.js。
这些数据提供了我开始构建搜索组件所需的全部信息。
为了构建搜索组件(接下来会介绍!),我首先需要从静态端点查询数据,并将其传递给搜索组件。我在布局组件中查询数据,该组件存在于演示站点的每个页面中,例如:
你可以在这里看到存储库中的源代码:src/pages/index.astro。
以下是布局组件,它向端点发出服务器端请求。
这里需要指出的一件事是 fetch 中使用的 URL。如果站点已部署且 PROD 为 true,则静态端点的 URL 将为 https://tns-astro-site-search.netlify.app/all-content.json,而在开发中则使用本地主机 URL。
只要我能够查询搜索数据,我就可以通过 data 属性将其传递给我的搜索组件。
你可以在这里看到存储库中的 src:src/layouts/layout.astro。
为了构建搜索组件,需要安装两个附加依赖项。它们如下。
Fuse.js
我使用 Fuse.js 来帮助进行“模糊搜索”。键盘输入被捕获并传递给 Fuse.js。如果任何字母或单词与标题或日期匹配,Fuse.js 将返回该项。
Qwik
我使用 Qwik 的 Astro 集成来帮助管理客户端状态。Qwik 比 React 更轻量,并且比纯 JavaScript 更简洁。
剩下的步骤将涵盖如何设置搜索和过滤。我创建了一个简单的示例,你可以在这里预览:https://tns-astro-site-search.netlify.app/simple。源代码可以在这里找到:src/components/simple-search.jsx。
注意:我的演示中使用的示例包含大量额外的 CSS 和 JavaScript 来处理模态框,这并不是创建搜索功能所必需的。
第一步是创建搜索组件并返回一个 HTML 输入框。添加一个 onInput$ 事件处理程序,并创建一个名为 handleInput 的函数来捕获按键。
接下来,导入 useSignal,并创建两个新的常量来保存所有数据和过滤后的数据。
接下来,导入并初始化 Fuse.js。Fuse.js 的配置接受来自 useSignal 常量(all.value)的值,并在任何输入值与标题或日期的值匹配时应用模糊过滤阈值为 0.5。
fuse.search 可用于过滤数组中不符合配置参数的任何项,并返回一个新数组。我将这个新数组称为“results”。
接下来是添加一个 if 语句。如果从 HTML 输入中捕获到值,那么我将 useSignal filtered.value 设置为结果,如果未从 HTML 输入中捕获到值,那么我将 useSignal filtered.value 设置为 all.value。
这将返回一个过滤后的列表,或者整个列表。
最后一步是遍历 filtered.value(如果有长度)并返回项目列表。如果没有结果,则返回 null。
至此,我们已经掌握了如何使用 Astro 的内容集合查询数据的原理,如何通过静态端点使数据可用,以及如何使用 Fuse.js 和 Qwik 的 Astro 集成来实现模糊搜索并管理客户端状态。
我在我的网站上也采用了同样的方法,目前效果还不错!
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。