使用jQuery实现仿百度自动补全特效的步骤如下:
1. 引入jQuery库
要使用jQuery,我们需要先在HTML文件中引入jQuery库,可以通过CDN方式引入,也可以通过下载后放在项目中的方式引入。下面是CDN方式的示例代码。
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script>
2. 编写HTML结构
需要在HTML文件中创建一个输入框和显示下拉列表的容器,下拉列表初始状态为隐藏。示例代码如下:
<div class="autocomplete">
<input type="text" id="search-input">
<ul id="search-list"></ul>
</div>
3. 编写CSS样式
使用CSS样式设置输入框和下拉列表容器的样式,例如设置输入框的宽度、字体等。
.autocomplete input {
width: 300px;
font-size: 14px;
}
同时,设置下拉列表的样式,例如设置宽度、边框、背景颜色等。
.autocomplete ul {
width: 300px;
border: 1px solid #ccc;
background-color: #fff;
padding: 0;
margin: 0;
list-style: none;
display: none;
}
4. 编写jQuery代码
在输入框中输入内容时,触发input事件,使用jQuery向后台服务器发送异步请求,然后根据返回结果动态生成下拉列表内容,最后显示下拉列表。
示例代码如下:
$(function() {
// 获取输入框和下拉列表容器
var $input = $('#search-input');
var $list = $('#search-list');
// 监听输入框的input事件
$input.on('input', function() {
// 获取输入框的值
var keyword = $input.val().trim();
// 向后台服务器发送异步请求
$.ajax({
url: '/search', // 请求的URL地址
data: { keyword }, // 请求参数,关键字
success: function(data) {
// 根据返回结果生成下拉列表内容
var html = '';
data.forEach(function(item) {
html += '<li>' + item + '</li>';
});
// 显示下拉列表
$list.html(html).show();
}
});
});
});
上述代码定义了一个匿名函数,并使用jQuery的 $() 函数将其绑定到页面加载事件上。在函数内部,通过jQuery选择器获取输入框和下拉列表容器,然后监听输入框的 input 事件,获取输入框的值,向后台服务器发送ajax请求,异步获取数据,根据返回结果动态生成下拉列表内容并显示下拉列表。
示例
以下提供两个仿百度自动补全特效的示例:
示例1:基于json数据
$(function() {
// 获取输入框和下拉列表容器
var $input = $('#search-input');
var $list = $('#search-list');
// 监听输入框的input事件
$input.on('input', function() {
// 获取输入框的值
var keyword = $input.val().trim();
// 向后台服务器发送异步请求
$.ajax({
url: 'data.json', // 请求的URL地址
dataType: 'json', // 服务器返回的数据类型
data: { keyword }, // 请求参数,关键字
success: function(data) {
// 根据返回结果生成下拉列表内容
var html = '';
data.forEach(function(item) {
if (item.indexOf(keyword) >= 0) {
html += '<li>' + item + '</li>';
}
});
// 显示下拉列表
$list.html(html).show();
}
});
});
});
该示例中定义了一个名为 "data.json" 的JSON文件,存储了一组数据,当用户在输入框中输入关键字时,只有包含关键字的数据才会在下拉列表中显示。
示例2:基于PHP后台
$(function() {
// 获取输入框和下拉列表容器
var $input = $('#search-input');
var $list = $('#search-list');
// 监听输入框的input事件
$input.on('input', function() {
// 获取输入框的值
var keyword = $input.val().trim();
// 向后台服务器发送异步请求
$.ajax({
url: 'search.php', // 请求的URL地址
data: { keyword }, // 请求参数,关键字
success: function(data) {
// 根据返回结果生成下拉列表内容
var html = '';
data.forEach(function(item) {
html += '<li>' + item + '</li>';
});
// 显示下拉列表
$list.html(html).show();
}
});
});
});
该示例中使用PHP作为后台语言,在服务端接收到包含用户输入关键字的请求时,从数据库或其他数据源中获取数据,根据输入的关键字,将查询结果返回给前端页面,前端根据返回结果生成下拉列表并显示在页面上。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用jquery实现仿百度自动补全特效 - Python技术站