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 相关文章推荐
Prototype最新版(1.5 rc2)使用指南(1)
Jan 10 Javascript
Jquery原生态实现表格header头随滚动条滚动而滚动
Mar 18 Javascript
JavaScript中实现map功能代码分享
Jun 11 Javascript
JS实现微信弹出搜索框 多条件查询功能
Dec 13 Javascript
简单实现jQuery多选框功能
Jan 09 Javascript
微信小程序实现给循环列表添加点击样式实例
Apr 26 Javascript
React Native 环境搭建的教程
Aug 19 Javascript
微信小程序实现元素渐入渐出动画效果封装方法
May 18 Javascript
Angular 多模块项目构建过程
Feb 13 Javascript
ES2020系列之空值合并运算符 '??'
Jul 22 Javascript
vue表单验证之禁止input输入框输入空格
Dec 03 Vue.js
五句话帮你轻松搞定js原型链
Dec 09 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
mysql 性能的检查和优化方法
2009/06/21 PHP
CodeIgniter配置之SESSION用法实例分析
2016/01/19 PHP
你不知道的文件上传漏洞php代码分析
2016/09/29 PHP
ThinkPHP 模板引擎使用详解
2017/05/07 PHP
[对联广告] JS脚本类
2006/08/27 Javascript
Javascript 变量作用域 两个可能会被忽略的小特性
2010/03/23 Javascript
js客户端快捷键管理类的较完整实现和应用
2010/06/08 Javascript
javascript使用isNaN()函数判断变量是否为数字
2013/09/21 Javascript
jquery操作HTML5 的data-*的用法实例分享
2014/08/17 Javascript
jquery+php实现搜索框自动提示
2014/11/28 Javascript
JS实现选项卡实例详解
2015/11/17 Javascript
js实现上传图片及时预览
2016/05/07 Javascript
基于jQuery实现表格的查看修改删除
2016/08/01 Javascript
微信小程序开发之实现选项卡(窗口顶部TabBar)页面切换
2016/11/25 Javascript
解决在vue+webpack开发中出现两个或多个菜单公用一个组件问题
2017/11/28 Javascript
vue slots 组件的组合/分发实例
2018/09/06 Javascript
angular4中引入echarts的方法示例
2019/01/29 Javascript
js实现点赞效果
2020/03/16 Javascript
修改Vue打包后的默认文件名操作
2020/08/12 Javascript
[02:28]DOTA2 2017国际邀请赛小组赛回顾
2017/08/09 DOTA
python的exec、eval使用分析
2017/12/11 Python
python 文件转成16进制数组的实例
2018/07/09 Python
python-opencv 将连续图片写成视频格式的方法
2019/01/08 Python
Python3.x+pyqtgraph实现数据可视化教程
2020/03/14 Python
Python selenium键盘鼠标事件实现过程详解
2020/07/28 Python
CSS3弹性伸缩布局之box布局
2016/07/12 HTML / CSS
Vichy薇姿加拿大官网:法国药妆,全球专业敏感肌护肤领先品牌
2018/07/11 全球购物
美津浓美国官网:Mizuno美国
2018/08/07 全球购物
ZWILLING双立人法国网上商店:德国刀具锅具厨具品牌
2019/08/28 全球购物
Linux内核的同步机制是什么?主要有哪几种内核锁
2013/01/03 面试题
MVC的各个部分都有那些技术来实现?如何实现?
2016/04/21 面试题
学生宿舍管理制度
2014/01/30 职场文书
银行进社区活动总结
2014/07/07 职场文书
2014年卫生院工作总结
2014/12/03 职场文书
文化大革命观后感
2015/06/17 职场文书
HTML页面滚动时部分内容位置固定不滚动的实现
2021/04/14 HTML / CSS