使用javascript和css3过渡移动具有动态高度的div

时间:2011-12-15 12:35:09

标签: jquery dynamic css3 height css-transitions

我有div的高度根据其内容而变化。 Div元素位于屏幕外部的底部,但是当用户单击按钮时,div元素将恰好达到div的高度。例如,如果div的高度为200像素,则它将向上移动200像素;如果div的高度为400像素,则它将向上移动400像素。我能够获得div的高度并抬起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 个答案:

答案 0 :(得分: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)');
}