5

これまでのローロードスタイルの時計のデモを少し作成しました。グラフィックはフリービーのPSDから来たもので、setInterval()を使ってクロック機能を構築しました。 the live demo hereをチェックすることができます。jQueryでRolodexのフリップダウンエフェクトをアニメーション化する

私がしようとしているのは、数字の変更をアニメーション化して、トップ部分が下に移動して新しい番号を表示することです。私はこれについてどうすればいいのか、間違いなく失われています - 私はbgイメージを使うことができましたが、まっすぐなHTMLの数字はより使いやすいと感じています。誰かが私にこれを正しい方向に向けることができますか?私は私が得ることができるあらゆる助けを愛するでしょう...私はまた、私が構築しているもののアイデアを得ることができるように下のプレビュー画像を含めた。

また、私はCSS3ソリューションを試してみましたが、これまでのところjQueryよりもうまく機能するものは見つかりませんでした。

jquery clock preview

+0

[JavaScript Flip Counter]の複製が可能です(http://stackoverflow.com/questions/746353/javascript-flip-counter) – Widor

+1

このプラグインを試す:http://www.littlewebthings.com/projects/countdown/example/ –

+0

@Widorはい私はそれを見つけました、また、ここでは素晴らしい例です[http://cnanney.com/journal/demo/apple-counter-revisited/]。しかし、彼らはBG画像全体を使用しています。私はHTML要素を直接操作し、jQueryを使用してそれらをひねり/歪ませたいと思います。私が想定しているBGイメージを使用することができます - しかし、私はフォトショップではあまり良くありませんので、私はその方法を使用することには慎重です。 – Jake

答えて

1

私は、これは半分しか答えである認めますよ。 CSS/JQueryを使用してローリング効果をアニメーション化する方法を示します。

<html> 
<head> 
<script type="text/javascript" src="jquery.min.js"></script> 
<script type="text/javascript" src="transformjs.1.0.beta.2.min.js"></script> 
<style> 
body {font-size:128px;} 
</style> 
<script> 
$(function(){ //OnInit 

$('.anim').click(function() { 
    $(this).animate({ rotateX: '-='+(Math.PI/2), },500,"", 
    function(){ //OnComplete 
    var n=(parseInt($(this).html())+1)%10; //Turn 7 into 8, etc. 
    $(this).html(n.toString()); //Update number while it is hidden 
    $(this).animate({ rotateX: '+='+(Math.PI/2) },500); //Rotate it back 
    } 
);  
}); 


}); 
</script> 
</head> 
<body> 

<div class="anim" style="float:left">1</div><div class="anim" style="float:left">2</div><div class="anim" style="float:left">3</div> 
</body> 
</html> 

それはdownloaded hereことができるjQueryの1.5.1+、およびtransformjs libraryを、必要とします。 各番号をクリックするとスピンします。 Firefox 11とChromium 17でテスト済み。 transform.jsは、古いブラウザやIEで動作するものを実行する必要があります。

ところで、ブラウザ間のチャレンジに関しては、私はもともと<span>に3つの数字を持っていました。これはFirefoxで動作しますが、Chromeは動画をアニメーション化しません。したがって、への変更はfloat:leftとなります。

私が言ったように、それはまったくフリップカードのようには見えないので、半分の解決策に過ぎません。私はこれが少しのマスキングで行われ、数字の上に一時的なdivを作ることができると思います(実際のdivは次の数字を持ちます;前の数字は上の一時divにあります)。しかし、私は時間がなくなる前にそれを得ることができませんでした。

私はまだ投稿する価値があると思った。 rotateYとrotateZをアニメーションのrotateXと一緒に追加して、実際にいくつかの効果を試してみてください。

関連する問題