动画绝对div到固定div

时间:2012-04-12 14:50:09

标签: jquery html css positioning

在我的网站上,我有一个在父div中具有绝对位置的div。我想要的是当我点击它必须放大的div并在我的浏览器中间放置时。

我试过的是这个:

$j("#mac").click(function(){
 $j('#mac').css({
        position: 'fixed'
    });

$j('#mac').animate({
    width: 923,
    height: 498,
    left: ($j(window).innerWidth() - 923)/2,
    top: ($j(window).innerHeight() - 498)/2
  }, 1000)});

虽然有效但发生的事情是#mac首先定位到我屏幕的左上角,而不是动画到我的屏幕中心。这是有道理的,因为固定的位置的使用。但是当我不使用那个位置时,div不会位于中心位置。

所以我不想在屏幕的左上角设置te,但是div必须从原来的位置动画到屏幕的中心。

有人知道怎么做吗?

提前致谢!

1 个答案:

答案 0 :(得分:2)

当您将CSS位置更改为固定时,同时找到DIV的当前顶部和左侧位置并设置它们。这应该在正确的地方开始动画。

var offset = $j('#mac').offset();

$j('#mac').css({
    position: 'fixed',
    top: offset.top,
    left: offset.left
});