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

<html>
    <head>
        <base href="<%=basePath%>">

        <title>js/jQuery实现类似百度搜索功能</title>
        <meta http-equiv="pragma" content="no-cache">
        <meta http-equiv="cache-control" content="no-cache">
        <meta http-equiv="expires" content="0">
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        <meta http-equiv="description" content="This is my page">
        <script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
        <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
    </head>
    <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' οnmοuseenter='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>

 

转载于:https://www.cnblogs.com/hkdpp/p/8329120.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值