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 相关文章推荐
js 页面关闭前的出现提示的实现代码
May 25 Javascript
简单的js表单验证函数
Oct 28 Javascript
node.js中的path.sep方法使用说明
Dec 08 Javascript
举例讲解Node.js中的Writable对象
Jul 29 Javascript
原生JavaScript制作微博发布面板效果
Mar 11 Javascript
jQuery组件easyui对话框实现代码
Aug 25 Javascript
easyui messager alert 三秒后自动关闭提示的实例
Nov 07 Javascript
Node解决简单重复问题系列之Excel内容的获取
Jan 02 Javascript
vue页面加载闪烁问题的解决方法
Mar 28 Javascript
vue实现后台管理权限系统及顶栏三级菜单显示功能
Jun 19 Javascript
详解微信小程序开发之formId使用(模板消息)
Aug 27 Javascript
JavaScrip如果基于url实现图片下载
Jul 03 Javascript
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
php5数字型字符串加解密代码
2008/04/24 PHP
php自定义的格式化时间示例代码
2013/12/05 PHP
PHP中使用xmlreader读取xml数据示例
2014/12/29 PHP
php分割合并两个字符串的函数实例
2015/06/19 PHP
WordPress开发中用于标题显示的相关函数使用解析
2016/01/07 PHP
Yii2验证器(Validator)用法分析
2016/07/23 PHP
Yii2.0 Basic代码中路由链接被转义的处理方法
2016/09/21 PHP
利用php + Laravel如何实现部署自动化详解
2017/10/11 PHP
PNG背景在不同浏览器下的应用
2009/06/22 Javascript
手写的一个兼容各种浏览器的javascript getStyle函数(获取元素的样式)
2014/06/06 Javascript
jquery动态分页效果堪比时光网
2014/09/25 Javascript
JS或jQuery获取ASP.NET服务器控件ID的方法
2015/06/08 Javascript
javascript实现的多个层切换效果通用函数实例
2015/07/06 Javascript
JS获取元素多层嵌套思路详解
2016/05/16 Javascript
JavaScript知识点总结(十六)之Javascript闭包(Closure)代码详解
2016/05/31 Javascript
jQuery EasyUI datagrid在翻页以后仍能记录被选中行的实现代码
2016/08/15 Javascript
js HTML5手机刮刮乐代码
2020/09/29 Javascript
vue.js动态数据绑定学习笔记
2017/05/19 Javascript
vue绑定class与行间样式style详解
2017/08/16 Javascript
js移动端图片压缩上传功能
2020/08/18 Javascript
p5.js入门教程之图片加载
2018/03/20 Javascript
electron中使用bootstrap的示例代码
2018/11/06 Javascript
JavaScript闭包与作用域链实例分析
2019/01/21 Javascript
vue项目中将element-ui table表格写成组件的实现代码
2019/06/12 Javascript
layui复选框限制选择个数的方法
2019/09/18 Javascript
javascript实现放大镜功能
2020/12/09 Javascript
Python读写ini文件的方法
2015/05/28 Python
wxPython使用系统剪切板的方法
2015/06/16 Python
详解python中asyncio模块
2018/03/03 Python
对python 合并 累加两个dict的实例详解
2019/01/21 Python
python实现网页自动签到功能
2019/01/21 Python
python opencv图像处理(素描、怀旧、光照、流年、滤镜 原理及实现)
2020/12/10 Python
建筑设计所实习生自我鉴定
2013/09/25 职场文书
《宿建德江》教学反思
2014/04/23 职场文书
祖国在我心中演讲稿400字
2014/05/04 职场文书
2016春季运动会开幕词
2016/03/04 职场文书