2014-01-20 98 views
0

研究員堆垛機,jQuery的淡入/輸出搜索字段

我期待有一個搜索按鈕「改造」成一個搜索字段。

這是我到目前爲止,但動畫是超級搖搖欲墜。

HTML

<div id='search'> 
    <span id='text'>Search</span><span id='field' style="display:none;"><input type="text" name="firstname"></input></span><a href='#' id='btn_go'>Go</a> 
</div> 

CSS

*{ 
    margin: 0px; 
    padding:0px; 
} 

#search span { 
    padding: 15px; 
    display: block; 
    float: left; 
} 
#search { 
    background-color: #09F; 
    overflow: hidden; 
    float: left; 
} 
#btn_go { 
    background-color: #06C; 
    padding: 15px; 
    display: block; 
    float: left; 
    color: #FFF; 
    text-decoration: none; 
    } 

JS

$("#btn_go").click(function() { 
    $("#text").fadeToggle("slow", function() { 
    // Animation complete. 
    }); 

     $("#field").fadeToggle("slow", function() { 
    // Animation complete. 
    }); 

}); 

小提琴:http://jsfiddle.net/75DUC/

回答

0

絕對定位將解決您的問題。您將有寬度和高度值玩,但這裏是一個粗略的估計是你正在尋找:Fiddle

更新CSS:

*{ 
    margin: 0px; 
    padding:0px; 
} 

#search span { 
    padding: 15px; 
    display: block; 
    position: absolute; 
} 
#search { 
    background-color: #09F; 
    overflow: hidden; 
    height: 50px; 
    width:250px; 
    position:relative; 
} 
#text{ 
    top:0; 
    left:0; 
    width: 150px; 
} 
#field{ 
    top:0; 
    left:0; 
} 
#btn_go { 
    background-color: #06C; 
    padding: 15px; 
    display: block; 
    position: absolute; 
    top:0; 
    right:0; 
    color: #FFF; 
    text-decoration: none; 
    } 

UPDATE:

我已更新我的fiddle以包含擴大搜索框。我使用CSS轉換和一些額外的jQuery來使它工作。

額外的jQuery:

var search = $('#search') 
    var width = search.width(); 
    if(width == 125){ 
     search.width('250px'); 
    } 
    else{ 
     search.width('125px'); 
    } 

額外的CSS:

#search { 
    transition: width 0.5s linear; 
} 
+0

我其實是想在搜索領域中的 「成長」,由右至左擴展容器。 –

+0

@AaronBenjamin我編輯了我的答案,包括這一點。 – zsaat14