ドラッグ可能な Framer Motion コンポーネントの位置を保持
P粉449281068
P粉449281068 2024-03-31 22:29:49
0
1
322

私はウィジェットを移動できるウィジェット ダッシュボードを作成しています。私の目標は、ウィジェットをドラッグした後でもウィジェットの位置を保持し、将来のセッションでまったく同じ場所にロードできるようにすることです。

これは、フレーマーモーションで発生している問題を説明するコードサンドボックスです: https://codesandbox.io/p/sandbox/interesting-sun-p8h6cu。

ウィジェットの最初の topleft の値は開始位置を正しく反映していますが、ドラッグした後に新しい位置を保持できません。

onDragEnd ハンドラーでウィジェットの位置を更新すると、ウィジェットの top スタイルと left スタイルが更新されます。 transform:translate を使用して Framer モーション経由でドラッグし、配置スタイルを更新すると、ウィジェットが生成されます:

  1. DragEnd での新しい位置を正しく保持します
  2. top left スタイルは transform:translate ドラッグ スタイルの効果を 2 倍にするため、前のポイントの後に UI 内を移動します。
この問題の解決方法がわかりません。初期位置決めに

transform:translate を使用しようとしましたが、機能しません。また、フレーマー モーションがドラッグされるとオーバーライドされ、さまざまな望ましくない動作が引き起こされると思います。

TLDR: Framer-motion のドラッグ機能を介してドラッグできる、絶対に配置されたコンポーネントを表示するのに問題があります

P粉449281068
P粉449281068

全員に返信(1)
P粉621033928

その通りです。フレーマーのドラッグ機能が xy を変更しているため、topleft は 2 倍になります。次に、xy 変換を上と左に適用するため、予期しない結果が得られます。

#xxy のみを変更する場合は、すべての同期が維持されるはずです。 リーリー ### の代わりに ### リーリー

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!