利用autocomplete.js实现仿百度搜索效果(ajax动态获取后端[C#]数据)

时间:2023-02-01 19:44:11

实现功能描述:

1、实现搜索框的智能提示

2、第二次浏览器缓存结果

3、实现仿百度搜索

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script src="js/jquery-1.8.3.min.js"></script>
<script src="jsPlugin/autocomplete/jquery.autocomplete.js"></script>
<style>
* { margin: 0px; padding: 0px; }
#wrapper { height: 100%; padding-top: 100px; }
.s-skin-container { position: fixed; _position: absolute; top: 0; left: 0; height: 100%; width: 100%; min-width: 1000px; z-index: -10; background-position: center 0; background-repeat: no-repeat; background-size: cover; -webkit-background-size: cover; -o-background-size: cover; zoom: 1; }
.s-form { width: 700px; height: 100%; min-height: 293px; margin: 0 auto 0 auto; text-align: left; z-index: 100; } form { margin: 8px 0 0 25px; }
input { outline: none; }
#s_kw_wrap { display: inline-block; zoom: 1; vertical-align: top; width: 500px; }
#kw { width: 488px; padding: 10px 9px 10px 7px; border: 0; background-image: none; height: 20px; line-height: 20px; box-shadow: 0 1px 3px rgba(0,0,0,0.2); -webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.2); -moz-box-shadow: 0 1px 3px rgba(0,0,0,0.2); } .s_btn_wr { display: inline-block; zoom: 1; vertical-align: top; width: 102px; height: 38px; border: 1px solid #38f; border-bottom: 1px solid #2e7ae5; background-color: #38f; }
.btn { cursor: pointer; width: 102px; height: 38px; line-height: 38px; padding: 0; border: 0; background: none; background-color: #38f; font-size: 16px; color: white; box-shadow: none; font-weight: normal; }
.btn:hover { height: 39px; _height: 38px; background-color: #317ef3; border-bottom: 1px solid #2868c8; box-shadow: 1px 1px 1px #ccc; } /*选择提示项*/
.autocomplete-suggestions { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; border: 1px solid #ccc; background: #FFF; cursor: default; overflow: auto; -webkit-box-shadow: 1px 4px 3px rgba(50, 50, 50, 0.64); -moz-box-shadow: 1px 4px 3px rgba(50, 50, 50, 0.64); box-shadow: 1px 4px 3px rgba(50, 50, 50, 0.64); }
.autocomplete-suggestion { padding: 2px 5px; white-space: nowrap; overflow: hidden; }
.autocomplete-no-suggestion { padding: 2px 5px; }
.autocomplete-selected { background: #F0F0F0; }
.autocomplete-suggestions strong { font-weight: bold; color: #ff6a00; }
.autocomplete-group { padding: 2px 5px; }
.autocomplete-group strong { font-weight: bold; font-size: 16px; color: #000; display: block; border-bottom: 1px solid #000; }
</style>
</head>
<body>
<div id="wrapper">
<div class="s-skin-container" style="background-image: url(https://ss2.bdstatic.com/lfoZeXSm1A5BphGlnYG/skin/5.jpg);"></div>
<div class="s-form">
<form action="#">
<span id="s_kw_wrap">
<input type="text" id="kw" maxlength="100" autocomplete="off" />
</span>
<span class=" s_btn_wr">
<input type="submit" value="搜索一下" class="btn" />
</span>
</form>
</div>
</div>
<script>
$(function () {
$("#kw").focus(); $("#kw").autocomplete({
ajaxSettings: { url: "/ajax/autoHandler.ashx" }
})
})
</script>
</body>
</html>

后端代码

  /// <summary>
/// 提供搜索数据
/// </summary>
public class autoHandler : IHttpHandler, IRequiresSessionState
{
public HttpRequest Request
{
get
{
return HttpContext.Current.Request;
}
} public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "application/json";
string query = Request["query"];
object data = null;
if (!string.IsNullOrEmpty(query))
{
List<AutoKeyWordEntity> list = GetSearchList(query);
data = list;
} var newData = new { suggestions = data };
string jsonData = JsonConvert.SerializeObject(newData);
context.Response.Write(jsonData); } private List<AutoKeyWordEntity> GetSearchList(string query)
{
List<AutoKeyWordEntity> list = new List<AutoKeyWordEntity>();
if (query.Contains("百") || query.Contains("b"))
{
list.Add(new AutoKeyWordEntity() { value = "百度" });
list.Add(new AutoKeyWordEntity() { value = "b百度" });
}
else if (query.Contains("360") || query.Contains("3") || query.Contains("6"))
{
list.Add(new AutoKeyWordEntity() { value = "360" });
list.Add(new AutoKeyWordEntity() { value = "3" });
list.Add(new AutoKeyWordEntity() { value = "360搜索" });
}
else if (query.Contains("神"))
{
list.Add(new AutoKeyWordEntity() { value = "神马搜索" });
}
else if (query.Contains("1"))
{
list.Add(new AutoKeyWordEntity() { value = "1一个人" });
}
else
{
list.Add(new AutoKeyWordEntity() { value = "我的网" });
}
return list;
}
public class AutoKeyWordEntity
{
public string value { get; set; }
} public bool IsReusable
{
get { return true; }
}
}

  

  效果:

利用autocomplete.js实现仿百度搜索效果(ajax动态获取后端[C#]数据)

下载地址 http://www.jq22.com/jquery-info12967

利用autocomplete.js实现仿百度搜索效果(ajax动态获取后端[C#]数据)的更多相关文章

  1. 仿百度搜索(AJAX)

    <h1>百度搜索</h1><!--建立一个DIV,其中包括一个文本输入框和一个按钮--><div id="sousuo"> < ...

  2. 点滴积累【JS】---JS实现仿百度模糊搜索效果

    效果: HTML代码: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="In ...

  3. 百度搜索效果(jsonp法)

    百度搜索效果(jsonp法): 不需要放在服务器中,本地就可以执行 <!DOCTYPE html> <html> <head> <meta charset=& ...

  4. vue-resource使用 &lpar;vue仿百度搜索&rpar;

    1.this.$http.get()方法2.this.$http.post()方法3.this.$http.jsonp()方法 (vue仿百度搜索) 在输入框中输入a, 然后在百度f12 ==> ...

  5. Springboot&plus;Vue实现仿百度搜索自动提示框匹配查询功能

    案例功能效果图 前端初始页面 输入搜索信息页面 点击查询结果页面 环境介绍 前端:vue 后端:springboot jdk:1.8及以上 数据库:mysql 核心代码介绍 TypeCtrler .j ...

  6. js搜索框 js仿百度搜索 js下拉框 jQuery&period;Autocomplete使用

    做了一个网站,需要根据文本框的输入模糊搜索数据库内容给出提示供用户选择,就找到了jQuery.Autocomplete 效果如下图: 该插件托管在github上,具体地址:https://github ...

  7. 使用Jquery UI 高仿百度搜索下拉列表功能

    最近项目有个需求,在新添加商户的时候,用户输入商户名称后,如果系统中有类似的商户名称,直接显示出来,如下图的效果: 实现这个功能,直接使用了JQuery UI 插件 目前我使用的实现版本是: 网友可以 ...

  8. 利用tween&period;js算法生成缓动效果

    在讲tween类之前,不得不提的是贝塞尔曲线了.首先,贝塞尔曲线是指依据四个位置任意的点坐标绘制出的一条光滑曲线.它在作图工具或动画中中运用得比较多,例如PS中的钢笔工具,firework中的画笔等等 ...

  9. 利用referer属性,记录百度搜索跳转参数

    从百度搜索结果跳转到指定链接前,百度会发送一些参数,可以利用referer属性,在本站访问时记录百度跳转来之前的一些参数. 利用百度跳转前参数,进行一些相关的seo优化. 目前所用到的一些参数说明如下 ...

随机推荐

  1. jvm垃圾回收机制

    http://blog.csdn.net/zsuguangh/article/details/6429592 原文地址

  2. Cocos2d-x中Vector使用

    1.创建Vector对象 Vector().默认的构造函数. Vector(ssize_t capacity).创建Vector对象,并设置容量. Vector(const Vector<T&g ...

  3. 第二种:NSObject

    - (void)viewDidLoad { [super viewDidLoad]; /** * 开启子线程的方式之一:NSObject */ // 第一个参数:selector // 第二个参数:方 ...

  4. WebService-axis2

    WebService框架有好多,常用的cxf,axis2等,axis2的配置过程相对简单,不用编写接口,在实现.只需要一个Service服务类即可.配置过程大致如下: 1,导入jar包(这里我是把ax ...

  5. 细说java之编码

    JAVA编程中涉及的编码 1.J2EE中涉及的编码(1) HttpServletResponse响应内容编码: resp.setCharacterEncoding(charset); (2)JSP文件 ...

  6. vivado&sol;FPGA 使用小纪

    1.使用FPGA做为外部控制器的总线译码时,将总线时钟接在全局时钟脚上(MRCC),就算接在了局部时钟(SRCC)上,也要通过BUFG转为全局时钟走线,否则会因为local clk到各部分的时延较大引 ...

  7. Oracle 23的用户管理

    创建用户的语法格式 Create user <user_name> Identified by<password> Default tabespace<default t ...

  8. Spring IOC(一)概览

    Spring ioc源码解析这一系列文章会比较枯燥,但是只要坚持下去,总会有收获,一回生二回熟,没有第一次,哪有下一次... 本系列目录: Spring IOC(一)概览 Spring IOC(二)容 ...

  9. 《转载》Python3安装Scrapy

    运行平台:Windows Python版本:Python3.x IDE:Sublime text3 转载自:http://blog.csdn.net/c406495762/article/detail ...

  10. Struts 2 Tutorial

    Apache Struts 2 is an elegant, extensible framework for creating enterprise-ready Java web applicati ...