React-dnd: Chrome 50中的Ghost元素显示非常不一致

创建于 2016-04-29  ·  5评论  ·  资料来源: react-dnd/react-dnd

将Chrome更新到50后,我们应用中的大多数react-dnd可拖动元素都出现了幽灵元素问题,我无法确定根本原因是什么(并且没有公共链接指向我们应用的管理员我可以提供)。 最初的行为之前还不错,那就是拖动元素会显示幻影元素,而隐藏源元素。

我们的应用程序有6个不同的组件,可使用react-dnd进行拖动。 其中2个显示的幻影很好,其中3个根本没有显示幻影,其中1个以某种正确的宽度/高度显示了元素,但是没有内容并且带有白色背景。

drag-ghost-what-now

这是到目前为止我发现的线索列表:

  • 所有组件都使用带有父元素作为预览的拖动手柄元素
  • 如果monitor.isDragging()为true,则所有组件(除了一个变成白色的组件)都向预览元素添加了内联opacity:0样式。
  • 如果删除条件不透明度:0逻辑,则可以看到幻影,但是源元素不可见,这是不可接受的
  • 这是一个奇怪的。 对于其中的两个组件,向它们添加z- index:1可以完全修复它。 我可以看到幻影,并且源组件被隐藏了。 对于其他2个损坏的组件,这不能解决问题。 以前在这些组件上没有z-index规则或任何堆叠问题。
  • 这使我想到,可能存在一些CSS组合,导致浏览器认为源组件在dragstart时不可见,因此不会创建虚影。 我尝试过删除/更改各种CSS值,但一无所获。
  • 在将Chrome更新到50之前,这肯定是可行的。
browser bug wontfix

最有用的评论

请参阅相关的Chromium错误

我的draggable = true元素具有相对位置以及我的子文本元素。 从他们两个中删除相对位置解决了我的问题。

所有5条评论

我看到的是完全相同的行为。 我也无法查明是什么原因,但似乎只有受影响的元素的子元素大于父元素(溢出:隐藏)。 如果内容适合父项而不会溢出,则预览会显示在正确的位置,但仅以白色呈现。

同样的行为在这里! 图像保留在拖动预览中,但所有文本均消失。 在Safari和Firefox中均可使用。

请参阅相关的Chromium错误

我的draggable = true元素具有相对位置以及我的子文本元素。 从他们两个中删除相对位置解决了我的问题。

似乎与#454有关。 我现在将其保持打开状态以跟踪chrome bug。

由于此问题最近没有活动,因此已被自动标记为陈旧。 如果没有进一步的活动,它将关闭。 感谢您的贡献。

此页面是否有帮助?
0 / 5 - 0 等级