Javascript 重新定位并向上显示实时结果

Javascript 重新定位并向上显示实时结果,javascript,html,css,Javascript,Html,Css,我正在尝试修改一个实时搜索模块,我有一些样式问题 当我键入关键字时,它向下显示结果。如果是左边或右边,我知道怎么做,但我不知道如何向上定位 我需要它的样式显示时,它的结果显示向上 HTML <div id="footer"> <input type="text" name="filter_name2" > <div class="button-search"></div> </div> Javascript

我正在尝试修改一个实时搜索模块,我有一些样式问题

当我键入关键字时,它向下显示结果。如果是左边或右边,我知道怎么做,但我不知道如何向上定位

我需要它的样式显示时,它的结果显示向上

HTML

<div id="footer">
<input type="text" name="filter_name2" >
<div class="button-search"></div>
</div>
Javascript

                        $(function(){
                            var i = (!!$("#livesearch").length ? $("#livesearch") : $("<ul id='livesearch'></ul>") ), s = $("#footer [name=filter_name2]");
                            function repositionLivesearch() { i.css({ top: (s.offset().top+s.outerHeight()), left:s.offset().left, width: s.outerWidth() }); }
                            $(window).resize(function(){ repositionLivesearch(); });
                            s.keyup(function(e){
                                switch (e.keyCode) {
                                    case 13:
                                        $(".active", i).length && (window.location = $(".active a", i).attr("href"));
                                        return false;
                                    break;
                                    case 40:
                                        ($(".active", i).length ? $(".active", i).removeClass("active").next().addClass("active") : $("li:first", i).addClass("active"))
                                        return false;
                                    break;
                                    case 38:
                                        ($(".active", i).length ? $(".active", i).removeClass("active").prev().addClass("active") : $("li:last", i).addClass("active"))
                                        return false;
                                    break;
                                    default:
                                        var query = s.val();
                                        //alert(query);
                                        if (query.length > 2) {
                                            $.getJSON(
                                                "<?php echo HTTP_SERVER; ?>?route=product/search/livesearch&filter_name=" + query,
                                                function(data) {
                                                    i.empty();
                                                    $.each(data, function( k, v ) { i.append("<li><a href='"+v.href+"'><img src='"+v.img+"' alt='"+v.name+"'><span>"+v.name+(v.model ? "<small>"+v.model+"</small>" : '')+"</span><em>"+(v.price ? v.price : '')+"</em></a></li>") });
                                                    i.remove(); $("body").prepend(i); repositionLivesearch();
                                                }
                                            );
                                        } else {
                                            i.empty();
                                        }
                                }
                            }).blur(function(){ setTimeout(function(){ i.hide() },500); }).focus(function(){ repositionLivesearch(); i.show(); });
                        });
$(函数(){
变量i=(!!$(“#livesearch”).length?$(“#livesearch”):$(“
    ”),s=$(“#footer[name=filter#name2]”); 函数respositionlivesearch(){i.css({top:(s.offset().top+s.outerHeight()),左:s.offset().left,width:s.outerWidth()});} $(窗口).resize(函数(){respositionLiveSearch();}); s、 键控(功能(e){ 开关(如钥匙代码){ 案例13: $(.active),i.length&(window.location=$(.active a,i.attr(“href”)); 返回false; 打破 案例40: ($(“.active”,i).length?$(“.active”,i).removeClass(“active”).next().addClass(“active”):$(“li:first”,i).addClass(“active”)) 返回false; 打破 案例38: ($(“.active”,i).length?$(“.active”,i).removeClass(“active”).prev().addClass(“active”):$(“li:last”,i).addClass(“active”)) 返回false; 打破 违约: var query=s.val(); //警报(查询); 如果(query.length>2){ $.getJSON( “?route=product/search/livesearch&filter_name=“+query, 功能(数据){ i、 空(); $。每个(数据、函数(k,v){i.append(“
  • ”)}); i、 remove();$(“body”).prepend(i);respositionlivesearch(); } ); }否则{ i、 空(); } } }).blur(function(){setTimeout(function(){i.hide()},500);}).focus(function(){respositionlivesearch();i.show();}); });
    我只是添加了

    bottom: 100%;
    

    添加到列表中,效果很好:)

    A将很有帮助。@Fr0zenFyr我正在从opencart扩展自定义它,我不知道如何将它添加到JSFIDLE。但这是模块的演示链接。如果您使用位于右上角的搜索栏进行搜索,它将显示结果。@cameron我为buttonWell添加了html代码。。这个问题还没有明确说明。。。是否希望搜索结果如下所示:
    bottom: 100%;