私はこれを頭の中で包み込むのにいくつか問題があります。私はほぼ完全にjavascriptで構築されたWebアプリケーションを持っています。基本的なテンプレートから始め、ユーザーが対話するにつれてコンテンツを追加し始めます。 Greensockをアニメーションライブラリとして使用しようとしています。アニメーションライブラリの進捗スライダを使用して、アニメーションの距離を表示する方法については、こちらを参照してください。https://greensock.com/timelinemax関数をコールバックで呼び出してからjavascriptで定義しますか?
問題は、コールバックonUpdate
各フレームでその機能を実行するはずです。次に、それを使ってアニメーションでスライダトラックを作成します。
var mainTL = new TimelineLite({onUpdate:updateSlider});
function updateSlider() {
sliderTimeline.noUiSlider.set(mainTL.progress());
}
スライダオブジェクトがまだ存在しないことを除いて、これは機能します。なぜ、これはファイルに含まれる最後のコードのいくつかですが、コンソールログにページの `ReferenceError:sliderTimelineが定義されていません 'というエラーが表示されますが、すべて正常に動作します。
は、これらのエラーから離れるしようとするために、私はこのようにそれを実行しようとしました:updateSlider' function hasn't been defined, and it fails to start at all. I could put them both in a
$(ドキュメント).ready(関数は、() `が、その後、彼らはなるので
var mainTL = new TimelineLite({onUpdate:updateSlider});
$(document).ready(function() {
function updateSlider() {
sliderTimeline.noUiSlider.set(mainTL.progress());
}
});
を除いては、今では失敗しますローカル関数/変数と私はそれらへのアクセスを持っていないと働いています5つの他のJavaScriptファイル。
私はエラーで生きている場合、または私は?
あなたは 'sliderTimeline'を定義するコードを共有する必要があります。あるいは、 'onUpdate'がパラメータ(' TimelineLite'オブジェクトなど)を渡していないかどうかを確認してください。 – jcaron
私はその質問に従ってはいけません。なぜ関数の後に 'var mainTL = new TimelineLite({onUpdate:updateSlider}); – jonmrich
@jonmrichの場合、 'mainTL'が' mainTL.progress() '関数から定義されていないというエラーが出ます。 @jcaronのsliderTimelineオブジェクトは、次のような基本的なnoUIsliderです:https://refreshless.com/nouislider/slider-read-write/ – Alan