2011-12-15 56 views
0

我有div,其高度根據其內容而變化。 Div元素位於屏幕的底部,但當用戶單擊一個按鈕時,div元素將正好出現在div的高度。例如,如果div的高度爲200像素,則會向上移動200個像素,如果div的高度爲400像素,則會向上移動400個像素。我能夠獲得div的高度並提起div元素,但我無法將其移回屏幕之外。這裏是我的代碼:使用javascript和css3轉換將動態高度移動div

<!DOCTYPE html> 
<html> 
<head> 
<title></title> 
<style type="text/css"> 
#button { 
    height: 100px; 
    width: 100px; 
    background: blue; 
} 
#box { 
    position: absolute; 
    top: 100%; 
    width: 100px; 
    height: 100px; 
    background: red; 
    -webkit-transition: all 1s ease-out; 
} 
</style> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 
<script type="text/javascript"> 
function moveUp() { 
    var height = $("#box").height(); 
    $("#box").css('-webkit-transform', 'translate3d(0px,-'+height+'px,0)'); 
} 
function moveDown() { 
    var height = $("#box").height(); 
    $("#box").css('-webkit-transform', 'translate3d(0px,'+height+'px,0)'); 
} 
</script> 
</head> 
<body>   
    <div id="button" onclick="moveUp();"></div> 
    <div id="box" onclick="moveDown();"></div> 
</body> 
</html> 

我也想有一個選項,我可以舉起並放下框通過點擊相同的按鈕。所以,兩種解決方案需要:)

回答

1

試試這個小提琴:http://jsfiddle.net/W7NDp/2/

腳本:

var visible = false; 
function moveUp() { 
    if(visible) 
    { 
     moveDown(); 
    } 
    else 
    { 
     var height = $("#box").height(); 
     $("#box").css('-webkit-transform', 'translate3d(0px,-'+height+'px,0)'); 
    } 
    visible = !visible; 
} 
function moveDown() { 
    var height = $("#box").height(); 
    $("#box").css('-webkit-transform', 'translate3d(0px,0px,0)'); 
} 
+0

謝謝你很多!完美的作品! – nqw1 2011-12-16 07:27:08