2012-02-09 9 views
1

青いボックスを赤色のボックスに合わせるにはどうすればよいですか? (jQueryの-UIを使用して)jQueryスケールdivの内容(ネストされたdiv)

http://jsfiddle.net/Y54EB/1/

これは基本的なコード、CSSです:

#outer { 
    position:relative; 
    height:100px; 
    width:150px; 
    z-index:1; 
    background:#F00; 
} 
#nested { 
    position:absolute; 
    left:50px; top:20px; 
    width:50px; height:20px; 
    z-index:2; 
    background:#00F; 
    cursor:pointer; 
} 

そしてHTML:

<div id="outer"> 
<div id="nested" onclick="$('#outer').effect('scale', {scale:'content',percent:50}, 1000);" /> 
</div> 
+0

私は両方ともスケールを意味するとは思わない...あなたはポジションも変えたいと思う? – ManseUK

答えて

3

私はこれが古いことを認識していますが、正しく理解すれば、私は同じことを達成しようとしていて、仕事をしているこのjQueryプラグインを見つけました:

https://github.com/heygrady/transform/wiki

+0

これは絶対に私の好きな答えです;-)パーセンテージを使った設計は、私にとっては良いアイデアのようには思えません。どこに配置すべきかが必要なので、42.748%のようなものを計算する時間を費やすことはできません。この変換機能は、デザインアプリで(行内に)スケーリングするようにすべて行います。ニース! – julifos

1

jqueryの:

$('#outer, #nested').effect('scale', {scale:'content',percent:50}, 1000); 

場合あなたもしたいO、ネストされた青色のボックスの位置を変更するCSSで固定ピクセルポジショニングを使用していけない...%

+0

.effect()は、jquery(この回答状態の最初の行として)だけでなく、jquery-uiを使用します。みんなに頭をアップしたいと思った=) – Losbear

5

チェックこのフィドル使用:http://jsfiddle.net/techfoobar/Y54EB/4/

ソリューションは%w.r.t.で寸法やネストされたdiv要素の位置を指定するには、基本的にピクセルではなく親です。

+0

OMG!それは良い解決策ですが、div内にはさまざまな要素がありますが、それはすべてのパーセントを計算するニグメアです。したがって、jQueryではネストされた固定位置の要素を拡大縮小することはできません。 – julifos

+0

はい、可能です。しかし、親がアニメーション化する際にサイズ変更するためにネストされた要素を必要とする場合(つまり、親のアニメーション化の子どものサイズと位置)、より小さい/より大きなサイズにするには、CSSベースのソリューションを使用する必要があります。親がアニメーション化された後に子どものサイズを確認することができれば、jqueryベースの解決策に進むことができます。 – techfoobar

+0

位置がpxまたは%であっても、すべてのブロックを同時にスケーリングすることができます。実際、私は長い時間の開発者で、私の脳をjs + css ;-)で苦労しています。私は今、自分の要素を(親divの子ではなく)独立させ、一貫して... – julifos

2

代わりに割合を使用するようにCSSを変更します。

#nested { 
    position:absolute; 
    left:30%; top:20%; 
    width:50%; height:20%; 
    z-index:2; 
    background:#00F; 
    cursor:pointer; 
} 

をこの方法で#nested div要素がouterのdivに比例して常にある - また、ここでは例の作業その位置

を保つ - >http://jsfiddle.net/Y54EB/5/

関連する問題