誰かが入力フィールドでEnterキーを押したときに、divを画面の上部にスライドさせようとしています。私が抱えている問題は、div が画面の上から 50 ピクセル移動する代わりに、それが入っている div の上から 50 ピクセル移動することです。
実際のコードは次のとおりです。
HTML
<div class="home-nav">
<div style="display: none;position: absolute;margin-top: -1px" id="search-box">
<form action="/" method="get"><input type="text" name="q" class="q" /></form>
</div>
</div>
JavaScript
$(".q").keydown(function(e){
if(e.keyCode == 13){
var val = $(this).val();
window.location = "#q="+val;
$(".space").animate({
width: "100px"
}, "slow");
$("#search-box").animate({
top: "50px"
}, "slow");
return false;
}
});
CSS
div.home-nav{
line-height: 4em;
position: absolute;
top: 0;
bottom: 0;
left: 300px;
height: 300px;
margin: auto;
}
内側の div を絶対位置に配置した理由は、リンクをクリックすると、div/input がリンクをカバーして少し効果があるからです。