2013-05-01 65 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