かなり堅牢な視差を作成しました。「タイムライン」の概念を使用して、特定のフレーム/シーン内のアイテムを表示します。トリガー (日付またはテキスト) をクリックすると、ユーザーはその特定のシーンに「圧縮」されます。ユーザーは、視差ボックス内でクリック アンド ドラッグすることもできます。
これはすべて期待どおりに機能します。
ただし、「フリック」や「イージング」を追加してほしいという要望がありました。つまり、ユーザーがドラッグを停止した場所で停止するのではなく、ドラッグして停止する場合は、穏やかにオーバーシュートする必要があります。スクロールが激しくなるほどオーバーシュートが大きくなり、ソフトになるほどオーバーシュートが少なくなります。
疑似コード形式での私のアイデアは次のとおりです。
on scroll{
startMove = getTime;
clearTimeout(moving)
moving = setTimeout(){
endTime = getTime;
moveTime = endTime - startMove;
speed = [decide amount to overshoot based on moveTime];
layer1.animate({'left':layer1.position().left - (speed/layerScrollSpeed)});
},50);
}
私は上記のようなことをしましたが、それはびくびくしていて、レイヤーも必要以上に動き回っていました.
プロジェクトの機密性を考えると、コードとリンクを共有することはできません。ただし、アイデア、リンク、提案、または「ねえ、これを試してみてください」は役に立ちます. ありがとう!