`
hiuman
  • 浏览: 52272 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

js/jQuery实现类似百度搜索功能

阅读更多
html代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <script type="text/javascript" src="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>
</body>
</html>


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("");
    }


效果图:







以上代码源自:http://blog.sina.com.cn/s/blog_798c1d510101c26y.html
另外还有一个有关keycode的网站:http://www.cnblogs.com/shipengzhi/articles/2035010.html






----------------
最简单的写法:
<input type="text" name="" id="search" value="">
<!--从数据库中搜索,返回结果,用js实时显示该div-->
<div class="search-result">
	<p class="search-result-con">1</p>
	<p class="search-result-con">2</p>
	<p class="search-result-con">3</p>
	<!--找不到结果时显示该div-->
	<p class="search-result-warn">很抱歉,没有找到与“<span>souibaisfdfsddsfd</span>”相关的内容。</p>
</div>

/*点击内容后显示在搜索框里的代码*/
var oResult = document.querySelectorAll('.search-result-con');
var oInput  = document.getElementById('search');
for(var i=0;i<oResult.length;i++){
	oResult[i].onclick=function(){
		alert(this.innerText)
		oInput.value=this.innerText;
	}
}
  • 大小: 23.5 KB
  • 大小: 26.6 KB
  • 大小: 4.4 KB
分享到:
评论

相关推荐

    ajax+jquery实现类似百度搜索提示框

    通过Ajax和jQuery,我们可以轻松地实现类似百度搜索提示框的功能,提供用户友好的交互体验。这种技术广泛应用于各种网站和应用中,提高了用户体验和网站性能。通过理解并实践这个示例,开发者可以进一步提升自己的...

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

    实际项目中,我们可以把数据获取改成ajax动态获取,在 getContent()中 ...meta name=Description content=js/jQuery实现类似百度搜索功能,可用键盘控制&gt; &lt;meta http-equiv=content-type content=t

    jQuery 仿百度搜索功能

    总结来说,"jQuery 仿百度搜索功能"是一种结合了前端jQuery库和后端Struts2框架的实现方案,通过实时Ajax交互,为用户提供类似百度搜索的智能提示体验。开发者可以根据自身项目需求,自定义样式和搜索逻辑,以实现更...

    Ajax和Jquery实现谷歌百度搜索下来提示

    总的来说,这个项目结合了Ajax、jQuery和C#,利用Microsoft Visual Studio 2008作为开发工具,实现了类似谷歌和百度搜索框的下拉提示功能。通过Ajax技术,用户在输入搜索词时可以实时看到匹配的搜索建议,提升了用户...

    jquery实现百度搜索关键字输入下拉框提示

    本项目"jquery实现百度搜索关键字输入下拉框提示"是利用 jQuery 实现类似百度搜索框的功能,即用户在输入框中输入关键词时,能实时显示与关键词相关的下拉提示,提高用户的搜索体验。 首先,`index.html` 是网页的...

    JAVA___jQuery+AJAX_仿百度搜索功能

    在这个项目中,用户输入关键词时,将通过AJAX异步请求发送到服务器,服务器端使用Java进行处理,然后返回相关的搜索结果,这一切都在不刷新页面的情况下完成,与百度搜索类似。 【描述解析】 "JAVA___jQuery+AJAX_...

    Jquery实现百度模糊搜索

    **jQuery实现百度模糊搜索** 在Web开发中,提供高效的搜索功能...通过以上步骤,我们成功利用jQuery实现了类似百度的模糊搜索功能。结合实际项目需求,你还可以对其进行更多定制和扩展,提升搜索功能的可用性和效率。

    jquery仿 百度搜索

    本教程将深入探讨如何使用jQuery库来实现类似百度搜索的功能,通过JSON数据交互,提升用户体验。 首先,jQuery是一个轻量级的JavaScript库,它简化了HTML文档遍历、事件处理、动画制作和Ajax交互等任务。在实现百度...

    jquery类似百度搜索自动完成插件autocompleter

    jQuery Autocompleter 是一个强大的插件,它实现了百度搜索类似的自动完成功能,能够极大地提升用户在输入搜索关键词时的效率。这个插件在用户在搜索栏输入信息后,会实时提供匹配的关键字建议,帮助用户快速找到...

    jquery Autocomplete 仿百度搜索 只能搜索提示

    总结来说,"jQuery Autocomplete 仿百度搜索 只能搜索提示"是一个基于jQuery UI和ASP.NET的实时搜索提示系统,它通过前后端的配合,实现了类似百度和Google搜索的自动补全功能。这个项目不仅提供了代码实现,还包含...

    基于jquery的仿百度搜索框效果代码

    总结来说,通过使用jQuery,我们可以轻松实现一个仿百度搜索框的效果,包括自动提示功能和简洁的样式设计。这只是一个基础示例,实际应用中可能需要连接到服务器获取实时的搜索建议,并对样式进行更多自定义以满足...

    Jquery下載,Jquery-3.5.1

    虽然现代前端框架如 React, Angular, Vue.js 提供了更多功能,但 jQuery 依然在许多项目中扮演重要角色,尤其是那些需要向后兼容旧版浏览器的项目。 ### 总结 jQuery-3.5.1 是一个强大且成熟的 JavaScript 库,它...

    类似百度搜索提示功能

    总结起来,"类似百度搜索提示功能"是通过`jquery.autocomplete`插件实现的,它利用JavaScript和jQuery库,结合数据源和用户输入,动态生成并展示搜索建议,提高了用户在网站上的搜索体验。在开发过程中,我们不仅...

    jquery引导 类似google-百度提示

    标题 "jquery引导 类似google-百度提示" 指向的是一个使用jQuery库实现的搜索提示功能,类似于谷歌和百度搜索引擎在用户输入时显示相关搜索建议的交互效果。这个功能通常用于提高用户体验,减少用户输入,并帮助他们...

    仿百度搜索的jquery自动完成功能包

    "仿百度搜索的jQuery自动完成功能包"正是为了解决这个问题而设计的,它允许开发者轻松地在网页文本框中实现智能搜索提示功能,即用户在输入关键字时,系统会根据已有的数据提供相关的建议,类似百度搜索引擎的搜索...

    基于jquery实现的类似百度搜索的输入框自动完成功能

    在类似百度搜索的场景中,当用户在搜索框中输入一部分关键词时,系统会自动显示出与输入相关的建议,供用户选择。这种功能可以减少用户的输入量,同时提供更精确的搜索结果。 实现这一功能需要结合客户端和服务器端...

    jquery实现百度搜索自动完成插件autocompleter

    在jQuery库的支持下,我们可以轻松实现类似百度搜索的自动完成插件——Autocompleter。本文将深入探讨如何利用jQuery创建这样一个功能强大的插件。 首先,理解Autocompleter的核心原理。它基于用户输入的字符,实时...

    jquery Autocomplete(类似百度搜索框)

    **jQuery Autocomplete** 是一个非常流行的JavaScript库,用于在输入框中实现自动补全功能,类似于百度搜索框的体验。这个功能广泛应用于各种网站,帮助用户快速找到他们想要输入的信息,提高了用户界面的交互性和...

Global site tag (gtag.js) - Google Analytics