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 相关文章推荐
Javascript模块化编程(一)模块的写法最佳实践
Jan 17 Javascript
text-align:justify实现文本两端对齐 兼容IE
Aug 19 Javascript
js如何打印object对象
Oct 16 Javascript
JavaScript+canvas实现七色板效果实例
Feb 18 Javascript
jquery实用技巧之输入框提示语句
Jul 28 Javascript
如何防止INPUT按回车自动提交表单FORM
Dec 06 Javascript
详解网站中图片日常使用以及优化手法
Jan 09 Javascript
Node.js的特点详解
Feb 03 Javascript
详解Vue路由开启keep-alive时的注意点
Jun 20 Javascript
JQuery 获取Dom元素的实例讲解
Jul 08 jQuery
Jquery滑动门/tab切换实现方法完整示例
Jun 05 jQuery
jQuery实现影院选座订座效果
Apr 13 jQuery
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
星际争霸 Starcraft 秘技补丁
2020/03/14 星际争霸
刚才在简化php的库,结果发现很多东西
2006/12/31 PHP
PHP学习之整理字符串
2011/04/17 PHP
php简单实现查询数据库返回json数据
2015/04/16 PHP
从新浪弄下来的全屏广告代码 与使用说明
2007/03/15 Javascript
jQuery 插件 将this下的div轮番显示
2009/04/09 Javascript
javascript 获取元素位置的快速方法 getBoundingClientRect()
2009/11/26 Javascript
Javascript 类与静态类的实现
2010/04/01 Javascript
js中的eventType事件及其浏览器支持性介绍
2013/11/29 Javascript
jquery获取css中的选择器(实例讲解)
2013/12/02 Javascript
jquery中常用的函数和属性详细解析
2014/03/07 Javascript
jquery做的一个简单的屏幕锁定提示框
2014/03/26 Javascript
javascript制作游戏开发碰撞检测的封装代码
2015/03/31 Javascript
json定义及jquery操作json的方法
2016/10/03 Javascript
vue.js 获取当前自定义属性值
2017/06/01 Javascript
JS实现点击下拉菜单把选择的内容同步到input输入框内的实例
2018/01/23 Javascript
还不懂递归?读完这篇文章保证你会懂
2018/07/29 Javascript
Angular事件之不同组件间传递数据的方法
2018/11/15 Javascript
微信小程序获取用户信息的两种方法wx.getUserInfo与open-data实例分析
2019/05/03 Javascript
python操作MongoDB基础知识
2013/11/01 Python
python列表操作之extend和append的区别实例分析
2015/07/28 Python
Django学习笔记之Class-Based-View
2017/02/15 Python
基于python list对象中嵌套元组使用sort时的排序方法
2018/04/18 Python
python3+PyQt5+Qt Designer实现扩展对话框
2018/04/20 Python
使用Py2Exe for Python3创建自己的exe程序示例
2018/10/31 Python
Python任务自动化工具tox使用教程
2020/03/17 Python
Python ArgumentParse的subparser用法说明
2020/04/20 Python
python3实现将json对象存入Redis以及数据的导入导出
2020/07/16 Python
使用纯 CSS 创作一个脉动 loader效果的源码
2018/09/28 HTML / CSS
社区学习十八大感想
2014/01/22 职场文书
驾驶员岗位职责
2014/01/29 职场文书
人力资源部经理助理岗位职责
2014/03/04 职场文书
人口与计划生育目标管理责任书
2014/07/29 职场文书
导游词之茶卡盐湖
2019/11/26 职场文书
Java Socket实现多人聊天系统
2021/07/15 Java/Android
PostgreSQL自动更新时间戳实例代码
2021/11/27 PostgreSQL