2012-02-14 12 views
2

jQuery Reel(http://jquery.vostrel.cz/reel)は、素晴らしい360ビューの物を作成するための優れたjqueryプラグインです。jQuery Reelを特定のフレームに再生して停止するにはどうすればいいですか?

アニメーションの再生、停止、一時停止、および現在のフレーム(.reel( "frame"))を検出するためにトリガーできるイベントがありますが、実際の配置方法はわかりません特定のフレームのリールを再生するリンクを作成し、その後停止します。助言がありますか?

答えて

7

あなたはイベントにバインドして、ターゲットフレームを確認し、到達したときに"stop"にすることができます。このような何か:

$('#your_reel_image') 
.trigger('play') 
.bind('frameChange', function(){ 
    if ($(this).reel('frame') == target_frame){ 
     $(this).trigger('stop'); 
    } 
}); 

ただ、携帯電話のような低速のデバイス上で、いくつかのフレームは必要なアニメーションの速度に追いつくために、スキップしてもよいことを、事実に注意してください。

上記にリファクタリングすることができますので、あなたはまた、ハンドラ内で自分で追加.reel()コールを保存するための3番目のイベントハンドラの引数としてframeを受け取る:バージョンので

$('#your_reel_image') 
.trigger('play') 
.bind('frameChange', function(e, depr_frame, frame){ 
    if (frame == target_frame){ 
     $(this).trigger('stop'); 
    } 
}); 

EDIT 1.3では、上記のソリューションを次のように置き換えることができます。

$('#your_reel_image').trigger('reach', target_frame); 

リールは、指定されたフレームに向かって最短経路をアニメートし、そこで停止します。

+0

この素晴らしいプラグインのおかげでPetr!特定のフレームに移動しながら速度を上げる簡単な方法はありますか?私は新しいスピードでリールを再初期化しようとしましたが、最初のフレームにリセットされますが、これは私が意図するものではありません。 –

+2

実際にはあります。 ".trigger( 'play')のように、[' "play" 'イベント](http://test.vostrel.cz/jquery.reel/docs/jquery.reel.html#play-Event) 、0.5) 'である。 Githubの[issue#110](https://github.com/pisi/Reel/issues/110)を参照してください。 –

+0

それは素晴らしいです - ありがとう! –

関連する問題