React-dnd: Chrome50で非常に一貫性のない表示のゴースト要素

作成日 2016年04月29日  ·  5コメント  ·  ソース: react-dnd/react-dnd

Chromeを50に更新した後、アプリ内のほとんどのreact-dndドラッグ可能要素にゴースト要素の問題が発生しており、根本的な原因を特定できません(アプリの管理者へのパブリックリンクがありません)私が利用できるようにすることができます)。 以前は正常に機能していた初期の動作では、要素をドラッグすると、ソース要素が非表示になっているときにゴースト要素が表示されました。

私たちのアプリには、react-dndを使用してドラッグできる6つの異なるコンポーネントがあります。 2つはゴーストをうまく表示しており、3つはゴーストをまったく表示しておらず、1つは要素を正しい幅/高さで表示していますが、コンテンツはなく、背景は白です。

drag-ghost-what-now

これが私がこれまでに見つけた手がかりのリストです:

  • すべてのコンポーネントは、プレビューとして親要素を持つドラッグハンドル要素を使用しています
  • monitor.isDragging()がtrueの場合、すべてのコンポーネント(白くなるコンポーネントを除く)は、プレビュー要素にインラインopacity:0スタイルを追加しています。
  • 条件付き不透明度:0ロジックを削除すると、ゴーストは表示されますが、ソース要素が見えなくなります。これは受け入れられません。
  • これは奇妙なものです。 2つのコンポーネントについて、z- index:1を追加すると、完全に修正されます。 ゴーストが見え、ソースコンポーネントが非表示になっています。 他の2つの壊れたコンポーネントについては、これで問題が解決しませんでした。 また、以前は、これらのコンポーネントにz-indexルールやスタックの問題はありませんでした。
  • そのため、CSSの組み合わせがあると、ブラウザはドラッグスタート時にソースコンポーネントが表示されないため、ゴーストが作成されないと考えるようになりました。 私はすべての種類のCSS値を削除/変更しようとしましたが、何もしませんでした。
  • Chromeを50に更新する前は、これは間違いなく機能していました。
browser bug wontfix

最も参考になるコメント

関連するChromiumのバグを参照してください。

私のdraggable = true要素には、子テキスト要素と同様に相対位置がありました。 それらのいずれかから相対位置を削除すると、私の問題は解決しました。

全てのコメント5件

まったく同じ動作が見られます。 また、原因を特定することもできませんでしたが、影響を受けるのは、親よりも大きい子要素を持つ要素のみのようです(オーバーフロー:非表示)。 コンテンツがオーバーフローせずに親に収まる場合、プレビューは正しい場所に表示されますが、白でのみレンダリングされます。

ここでも同じ動作です! 画像はドラッグプレビューに残りますが、すべてのテキストが消えます。 SafariとFirefoxで動作します。

関連するChromiumのバグを参照してください。

私のdraggable = true要素には、子テキスト要素と同様に相対位置がありました。 それらのいずれかから相対位置を削除すると、私の問題は解決しました。

#454に関連しているようです。 今のところ、クロムのバグを追跡するためにこれを開いたままにしておきます。

この問題は、最近のアクティビティがないため、自動的に古いものとしてマークされています。 それ以上のアクティビティが発生しない場合は閉じられます。 貢献していただきありがとうございます。

このページは役に立ちましたか?
0 / 5 - 0 評価