画像がクリックされたときにトリガーされる純粋なCSS3アニメーションを介して、divに存在する画像の回転アニメーションが必要です。アニメーションは特定の期間である必要があります。
質問する
536 次
3 に答える
1
クリック時に回転をトリガーするために私が考えることができる1つの解決策は、チェックボックスハックとキーフレームアニメーションを使用することです-DEMOを参照してください
使用される HTML:
<div class='img-container'>
<input type='checkbox' name='t' id='t'><label for='t'></label>
<img src='http://imgsrc.hubblesite.org/hu/db/images/hs-1998-14-i-web.jpg'>
</div>
関連する CSS:
.img-container {
position: relative;
width: 400px;
height: 295px;
}
.img-container input[type=checkbox] { display: none; }
.img-container input[type=checkbox] + label, .img-container img {
position: absolute;
min-width: 100%;
height: 100%;
}
.img-container input[type=checkbox] + label {
z-index: 2;
}
.img-container img { z-index: 1; }
.img-container input[type=checkbox] ~ img { animation: rev-rotate-img 1s; }
.img-container input[type=checkbox]:checked ~ img { animation: rotate-img 1s; }
@keyframes rotate-img { to { transform: rotate(360deg); } }
@keyframes rev-rotate-img { to { transform: rotate(-360deg); } }
于 2012-09-11T09:32:59.783 に答える
0
@keyframes
これは、CSS3animation
コマンドと組み合わせることで実現できます。簡単なメソッドは次のようになります。
-webkit-animation:
roll-over-rotate 400ms .1s 1 ease-in-out normal forwards,
roll-over-color 1000ms ease-out;
-moz-animation:
roll-over-rotate 400ms .1s 1 ease-in-out normal forwards,
roll-over-color 1000ms ease-out;
@-webkit-keyframes roll-over-rotate {
from {
-webkit-transform: rotate(0deg);
}
to {
-webkit-transform: rotate(90deg);
}
}
@-moz-keyframes roll-over-rotate {
from {
-moz-transform: rotate(0deg);
}
to {
-moz-transform: rotate(90deg);
}
}
最初に Webkit アニメーションを定義してから、目的の CSS3 固有の効果を定義するアニメーション関数を参照します。
実際の例については、この実験の css 部分を確認する必要があります: http://www.hellopixel.net/experiments/javascript/worley-noise/worley.html
于 2012-09-11T05:31:05.143 に答える