JS仿百度自动下拉框模糊匹配提示


Posted in Javascript onJuly 25, 2016

JS仿百度自动下拉框模糊匹配提示

实际项目中,我们可以把数据获取改成ajax动态获取,在 getContent()中

<!DOCTYPE>
<html>
<head>
<title>js/jQuery实现类似百度搜索功能</title>
<meta name="Author" content="Michael">
<meta name="Keywords" content="js/jQuery实现类似百度搜索功能">
<meta name="Description" content="js/jQuery实现类似百度搜索功能,可用键盘控制">
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<style type="text/css">
#container {
position: absolute;
left: 50%;
top: 40%;
}
#content {
float: left;
position: relative;
right: 50%;
}
input {
border: 0;
width: 288px;
height: 30px;
font-size: 16px;
padding: 0 5px;
line-height: 30px;
}
.item {
padding: 3px 5px;
cursor: pointer;
}
.addbg {
background: #87A900;
}
.first {
border: solid #87A900 2px;
width: 300px;
}
#append {
border: solid #87A900 2px;
border-top: 0;
display: none;
}
</style>
</head>
<body>
<div id="container">
<div id="content">
<div class="first">
<input id="kw" onKeyup="getContent(this);" />
</div>
<div id="append"></div>
</div>
</div>
<script type="text/javascript">
var data = [
"你好,我是Michael",
"你是谁",
"你最好啦",
"你最珍贵",
"你是我最好的朋友",
"你画我猜",
"你是笨蛋",
"你懂得",
"你为我着迷",
"你是我的眼"
];
$(document).ready(function() {
$(document).keydown(function(e) {
e = e || window.event;
var keycode = e.which ? e.which : e.keyCode;
if (keycode == 38) {
if (jQuery.trim($("#append").html()) == "") {
return;
}
movePrev();
} else if (keycode == 40) {
if (jQuery.trim($("#append").html()) == "") {
return;
}
$("#kw").blur();
if ($(".item").hasClass("addbg")) {
moveNext();
} else {
$(".item").removeClass('addbg').eq(0).addClass('addbg');
}
} else if (keycode == 13) {
dojob();
}
});
var movePrev = function() {
$("#kw").blur();
var index = $(".addbg").prevAll().length;
if (index == 0) {
$(".item").removeClass('addbg').eq($(".item").length - 1).addClass('addbg');
} else {
$(".item").removeClass('addbg').eq(index - 1).addClass('addbg');
}
}
var moveNext = function() {
var index = $(".addbg").prevAll().length;
if (index == $(".item").length - 1) {
$(".item").removeClass('addbg').eq(0).addClass('addbg');
} else {
$(".item").removeClass('addbg').eq(index + 1).addClass('addbg');
}
}
var dojob = function() {
$("#kw").blur();
var value = $(".addbg").text();
$("#kw").val(value);
$("#append").hide().html("");
}
});
function getContent(obj) {
var kw = jQuery.trim($(obj).val());
if (kw == "") {
$("#append").hide().html("");
return false;
}
var html = "";
for (var i = 0; i < data.length; i++) {
if (data[i].indexOf(kw) >= 0) {
html = html + "<div class='item' onmouseenter='getFocus(this)' onClick='getCon(this);'>" + data[i] + "</div>"
}
}
if (html != "") {
$("#append").show().html(html);
} else {
$("#append").hide().html("");
}
}
function getFocus(obj) {
$(".item").removeClass("addbg");
$(obj).addClass("addbg");
}
function getCon(obj) {
var value = $(obj).text();
$("#kw").val(value);
$("#append").hide().html("");
}
</script>
</body>
</html>

以上所述是小编给大家介绍的JS仿百度自动下拉框模糊匹配提示,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Javascript 相关文章推荐
StringTemplate遇见jQuery冲突的解决方法
Sep 22 Javascript
用Javascript评估用户输入密码的强度实现代码
Nov 30 Javascript
js获取当前日期代码适用于网页头部
Jun 27 Javascript
不同Jquery版本引发的问题解决
Oct 14 Javascript
JS+CSS实现美化的下拉列表框效果
Aug 11 Javascript
iscroll.js的上拉下拉刷新时无法回弹的解决方法
Feb 18 Javascript
简洁实用的BootStrap jQuery手风琴插件
Aug 31 Javascript
Angular.Js之Scope作用域的学习教程
Apr 27 Javascript
详解微信小程序中的页面代码中的模板的封装
Oct 12 Javascript
webpack打包react项目的实现方法
Jun 21 Javascript
30分钟用Node.js构建一个API服务器的步骤详解
May 24 Javascript
vue项目支付功能代码详解
Feb 18 Vue.js
JS本地刷新返回上一页代码
Jul 25 #Javascript
jQuery layui常用方法介绍
Jul 25 #Javascript
Bootstrap Validator 表单验证
Jul 25 #Javascript
javascript封装addLoadEvent实现页面同时加载执行多个函数的方法
Jul 25 #Javascript
最简单纯JavaScript实现Tab标签页切换的方式(推荐)
Jul 25 #Javascript
基于CSS3和jQuery实现跟随鼠标方位的Hover特效
Jul 25 #Javascript
javascript insertAfter()定义与用法示例
Jul 25 #Javascript
You might like
PHP读取xml方法介绍
2013/01/12 PHP
ThinkPHP实现支付宝接口功能实例
2014/12/02 PHP
Ubuntu12下编译安装PHP5.3开发环境
2015/03/27 PHP
php代码架构的八点注意事项
2016/01/25 PHP
PHP写的简单数字验证码实例
2017/05/23 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
2017/07/19 PHP
浅谈laravel orm 中的一对多关系 hasMany
2019/10/21 PHP
jQuery图片预加载 等比缩放实现代码
2011/10/04 Javascript
设置jsf的选择框h:selectOneMenu为不可编辑状态的方法
2014/01/07 Javascript
解决extjs grid 不随窗口大小自适应的改变问题
2014/01/26 Javascript
jQuery中attr()与prop()函数用法实例详解(附用法区别)
2015/12/29 Javascript
原生js编写autoComplete插件
2016/04/13 Javascript
JS数组交集、并集、差集的示例代码
2017/08/23 Javascript
安装vue-cli报错 -4058 的解决方法
2017/10/19 Javascript
AngularJs用户输入动态模板XSS攻击示例详解
2018/04/21 Javascript
小程序跳转到的H5页面再跳转回跳小程序的方法
2020/03/06 Javascript
WebStorm中如何将自己的代码上传到github示例详解
2020/10/28 Javascript
详解Python中如何写控制台进度条的整理
2018/03/07 Python
使用Python实现正态分布、正态分布采样
2019/11/20 Python
Python编程快速上手——选择性拷贝操作案例分析
2020/02/28 Python
CSS3实现鼠标悬停显示扩展内容
2016/08/24 HTML / CSS
HTML5 3D旋转相册的实现示例
2019/12/03 HTML / CSS
方太官方网上商城:销售方太抽油烟机、燃气灶、消毒柜等
2017/01/17 全球购物
Java如何格式化日期
2012/08/07 面试题
完美实现CSS垂直居中的11种方法
2021/03/27 HTML / CSS
创业培训计划书
2014/05/03 职场文书
公安学专业求职信
2014/07/27 职场文书
2014教师党员自我评议(5篇)
2014/09/20 职场文书
2014光棍节单身联谊活动策划书
2014/10/10 职场文书
2014年消防工作总结
2014/11/21 职场文书
2014年仓库保管员工作总结
2014/12/03 职场文书
幼儿园中班个人总结
2015/02/28 职场文书
护士心得体会范文
2016/01/25 职场文书
MySQL学习之基础操作总结
2022/03/19 MySQL
剑指Offer之Java算法习题精讲二叉树的构造和遍历
2022/03/21 Java/Android
Go本地测试解耦任务拆解及沟通详解Go本地测试的思路沟通的重要性总结
2022/06/21 Golang