2011-09-16 7 views
0

私はこのようなリンクを持つ複数のコンテナを、持っている:アニメーションの違いは、jQueryを使って隠し1.6.3

<div class="items" id="first"><a href="item1">item 1</a></div> 

コンテナは、背景画像を持っており、リンクがで隠されています:display: none;

$(".items").mouseover(function() { 
    $("a", this).show(1500); 
}).mouseout(function() { 
    $("a", this).hide(1500); 
}); 

Live example

ここで問題は、テキストがゆっくりと表示されていることですが、占有する場所が瞬時にとられることです。どのようにopositeを達成する - テキストがすぐに表示され、それが占める場所がゆっくりと表示されるのですか?

+0

は、私には見えるので、私は非常にあなたの質問を理解していませんか?ショーの遅延を小さくするには? –

答えて

0

http://jsfiddle.net/wtZPQ/2/

あなたも表示したい場合があります。ブロックをテキストdoesntのラップをmakesureします。

+0

このような効果のために私はshow()を使うべきではありませんか? – Bakudan

+0

もう少し説明しておきます。 CSSで私はリンクの幅を0に設定します。次に、joverを使用してホバー上にshow()を呼び出します。今は0pxの幅で示されています。次に、希望の結果を得るために幅にリンクをアニメートします。 mouseoutの反対を行います – wesbos

+0

これは、Miloがテキストをフェードインする必要がない場合に機能します。最終的な結果がどうなっているのかはっきりとはわかりません。 –

0

<a>が非表示になっていると、画面上にスペースが表示されません。彼らが隠されなくなるとすぐに、彼らは突然スペースを取る。そのため、あなたのライブの例では、ホバリングしてすぐにそのスペースが開いているのが見えます。

テキストのスペースがゼロになってからフルスペースを占めるまでになっています。不透明度はゼロから始まり、1500ミリ秒後には完全な不透明度に達するため、すぐには表示されません。しかし、不透明度ゼロであっても、まだ存在し、スペースを占めています。

だから、あなたが求めていることは本当に可能ではありません。あなたは<a>を絶対的な位置に置くことができるので、スペースを取らずに完全に消えた後にグラフィックの間のスペースを広げることができますが、私はそれがあなたのために何をしようとしているのか分かりません....

0

ああ、私はJQuery 1.4.4で試してみましたが正しく動作しますが、あなたのjsfiddleに表示されているように、1.6.3で破損します。

とにかく、aのタグのデフォルト値がdisplayinlineという幅を割り当てられていないためでした。

あなたは.items a { display:inline-block; }なり、その後はJQueryを使用してそれらを隠すためにそれを強制することができます:彼らの両方がゆっくりと起こっているよう

$(".items a").hide(); 

http://jsfiddle.net/wtZPQ/3/