2013-05-01 64 views
1

我是JQuery动画的新手,这看起来像一个相对简单的问题,但我已经做了一些挖掘工作,并且无法在其他地方找到任何解决方案。JQuery:与父div一起动画的子div div

我有一个父div,我想设置一定的百分比高度,例如,

$('#parent').animate({ 
    height: "75%" 
}); 

有一个孩子div,我想成为父母的高度的100%。

对于我来说,让两个动画同时动起来的最好方法是什么,所以无论我决定让父母动画的高度达到50%,30%,22.937%,孩子仍然保持在父高度的100%与父母一起增长/缩小?

这里是一个小提琴:http://jsfiddle.net/azw2F/2/

我想我可以放弃百分比,计算出的高度是从容器高度像素的,然后动画家长和孩子相同的像素值,但有更容易的方法吗?

谢谢 亚当

编辑

这个问题似乎涉及到孩子的div是否位于父的尺寸范围内。尺寸之外的div div的任何部分都不是动画的,只要动画结束,它们就会“结束”。 http://jsfiddle.net/azw2F/9 儿童部分外父:母内

儿童http://jsfiddle.net/azw2F/10

我猜的HTML或许应该重构,因此双亲是同胞,而是和这可能是唯一的答案(不是我说的对其他计算像素)。我想我只是希望有一些我不知道的JQuery动画魔法。

+1

为什么位置:绝对;为#child.check这一个http://jsfiddle.net/azw2F/3/是你的愿望结果。 – 2013-05-01 13:24:23

+0

我仍然需要位置:绝对不幸的是,我需要改变它的'左'属性。这是我期望的结果的完美例证,但是,谢谢:) – 2013-05-01 13:33:25

+0

@mani你应该把它作为答案,以便它可以被接受 – alkis 2013-05-01 14:40:31

回答

2

最好的解决办法一个with position:absolute是这样的:http://jsfiddle.net/azw2F/11/

当子div部分位于父div之外时,将overflow:visible!important;添加到父div,即子div从父级溢出。当你考虑它时简单的简单!

1
I have two solution for your problem 

先对孩子

http://jsfiddle.net/azw2F/4/

对孩子第二个without position:absolute这是我交的早期

http://jsfiddle.net/azw2F/3/

+0

嗨,谢谢,但正如我在我的评论中提到的,我需要能够设置'left'属性,只要你这样做,你的小提琴不再工作 – 2013-05-01 15:31:04

+0

我刚刚测试了mani的第一个例子,在孩子身上设置了一个'10px'的左边'看起来很好,虽然看起来他忘了设置#子女身高百分比 – 2013-05-01 15:39:49

+0

@ Adam Marshall对不起,但我没有明白你的观点,你用什么方法处理左边的财产。如果你仍然想使用左边,你可以试试left:100px; – 2013-05-01 15:42:04