2012-01-23 8 views
0

画像が入っている<div>をバウンスしようとしていますが、うまく動作せず、理由がわかりません。バウンスアニメーションが動作しません

これは私のコードです:

@keyframes bounce 
{ 
    from { 
     left: 0px; 
    } 
    to { 
     right: 30px; 
    } 
} 

@-moz-keyframes bounce /* Firefox */ 
{ 
    from { 
     left: 0px; 
    } 
    to { 
     right: 30px; 
    } 
} 

@-webkit-keyframes bounce /* Safari and Chrome */ 
{ 
    from { 
     left: 0px; 
    } 
    to { 
     right: 30px; 
    } 
} 

#DanielFace 
{ 
    background-repeat: no-repeat; 
    width: 145px; 
    height: 165px; 
    background-image: url(../images/daniel/fun.png); 
    animation: bounce 1s; 
    -moz-animation: bounce 1s; /* Firefox */ 
    -webkit-animation: bounce 1s; /* Safari and Chrome */ 
} 
+1

どのように「機能しない」のですか?個人的には、これを行うために非常にシンプルなJSを使用したいと思います。CSSはアニメーション化しないスタイリング用です。 –

+1

@ Kolink:アニメーション化のためのCSSは* way *に優れています。いくつかのこと。多分これではありません。 – Ryan

+0

イメージを表示しますが、イメージはバウンスしません。 – thormayer

答えて

1

これは2つの理由によるものです。

最初にleftrightは、そのCSSが与えられたオブジェクトでは何も行いません。これらの値は、要素のpositionstatic(デフォルト)以外の場合にのみ適用されます。

第2に、それらは競合する値なので、探しているアニメーション効果は得られません。今あなたが言っていることは、基本的にはこの要素を伸ばしていることです。イメージがあなたのページで正確に何をしたいですか?

+0

私はそれを左右に "浮かべる"ように続けます。 – thormayer

+1

その場合、_either_ 'left'または' right'を設定したいと思うでしょう。 @minitechが述べたように、あなたが動的な幅に広がりたいのであれば、JSではもっと簡単かもしれません。また、 'animation-iteration-count:infinite'を継続的に行うように設定し、' animation-direction:alternate'を前後に設定したいと思うでしょう。 – Ktash

+0

ありがとう@Ktash!あなたは多くを助けました! – thormayer

1

あなたは二つの異なる性質、rightleftを使用しているある理由。どちらのポジションでも、同じプロパティを使用してトランジションを実行する必要があります。コンテナの幅が固定幅の場合、単純です。 rightの代わりにleftを使用するか、逆の場合はfromtoの両方に使用してください。

一方、幅が動的である場合、あなたは不運です。代わりにJavaScriptを使用してください。

関連する問題