私は、ブラウザゲーム用のスライドがほとんどないインタラクティブなSVGインフォグラフィックを作成することに専念しています。前/次のボタンまたは特定のステップをクリックすると、svg全体が正しいステップにアニメートされます。コードの面ではGSAPを使ってSVG要素をアニメ化する
が、これは私が持っているものである:ここでは
function Slide() {
// Cache all top-level svg elements for later use
this.el = $('svg#betfair-slider');
this.hands = this.el.find('#hands_8_');
this.cardsDesk = this.el.find('g#center-cards');
this.textContainer = $('.step-text');
// Use a shared timeline across all slides, so there are no overlapping tweens
this.tween = new TimelineLite();
}
function Slide2() {
// Inherit from the main slide
Slide.call(this);
// each slide has its own supporting explanatory text
this.html = [
'<h3>Preflop</h3>',
'<p>Amet sit lorem ipsum dolar</p>'
].join('');
// the main openslide method
this.openSlide = function() {
// find the cards that need to be animated for this specific slide
var cards = this.hands.find('.card');
// fade out each card
this.tween.staggerTo(cards, 0.2, { opacity: 0 }, 0.2);
// Render supporting text
this.textContainer.html(this.html);
};
}
は、私は(this.hands.find('.card');
jqueryのメソッドを使用してそれらを取得することができています私はコンソールでそれらを見ることができます)、私はそれらをアニメートできません。私はさまざまな属性(不透明度、x、y、左など)をアニメーション化しようとしましたが、何も起こりません。
私はthis.hands.find('.card').hide()
を実行して、jQueryを使用してCSSを変更できますが、なぜTimelineLiteがここで動作しないのですか?私もこの方法を試してみました:
var cards = this.hands.find('.card');
for (var i = cards.length - 1; i >= 0; i -= 1) {
var card = cards[i];
this.tween.to(card, 0.2, { opacity: 0 });
}
しかし、まだありません成功...興味深いのは、私はトゥイーンのonCompleteのコールバックを添付するとき、彼らは解雇されていることであるが、絶対に何も画面に移動しません。すべてhereをチェックアウトすることができます。
事前にお手数をおかけしていただきありがとうございます。ご意見をお待ちしております。
ちょっとジャック、あなたの入力をありがとう!私は問題を多く見つけた後にそれを見つけました。それは簡単でした。私はCSSプラグインを添付していませんでした(GSAPはキャンバスでのみ使用しています)。しかし、私はあなたのアドバイスを実装します。しかし、各スライドに別々のタイムラインインスタンスがある場合、どのようにオーバーラップを管理するのですか?各タイムラインは、ほぼ同じ要素を使用しています。 –
ああ、はい、CSSPluginが役に立ちます。 :) Re:overlapsあなたが作成したばかりの新しいアニメーションを開始する前に(ユーザーインタラクションで)、現在再生中のアニメーションを終了させたいということですか?おそらくタイムラインを使用しても問題ありません。古いものに合わせて遅延を設定することもできます:oldTween.totalDuration() - oldTween.totalTime()。 codepen/jsfiddleを見ずに言うのは難しいです。詳細については、http://greensock.com/forums/でスイングしてください。 – Jack
お返事ありがとうございます。私はtweenMaxを使って実装しました。私のニーズに完全に対応しました。私は正しい、歓声としてあなたをマークしています。 –