【问题标题】:'position: fixed' on button within a div hides the button'位置:固定'在 div 内的按钮上隐藏按钮
【发布时间】:2021-05-30 00:35:55
【问题描述】:

我正在使用 draggable-dnd 库创建一个看板 React 应用程序。可拖动的 div(或“任务”)是应用程序的一部分,我想添加“X”按钮以在单击时删除这些可拖动。当我将这些按钮放置在 Draggable 的 div 中时,它们会以它们的正确功能出现。但是我想正确地设置它们的样式,并将它们固定在右上角。所以我尝试添加position:'fixed' 以及topright 职位。但是当这个 CSS 被实现时,按钮就消失了。更奇怪的是,当我拖动可拖动对象时,按钮会暂时出现,直到重新放置可拖动对象。我尝试将按钮的 z-index 更改为大数字,以及将按钮重新包装在 div 中,但无济于事。

draggable 背后的通用代码:

<Draggable>
 <div>
   <RemoveDraggableButton/>
 </div>
</Draggable>

还有按钮:

class RemoveDraggableButton extends React.Component {
 ...

  render () {
    return (
        <button 
          onClick={this.handClick}
          style={{
                  position:'fixed',
                  top: 10,
                  right: 10,
                    }}>
          X
          </button>
    );
  };
}

GitHub

【问题讨论】:

  • 也许你需要添加z-index?
  • 你想要position: absolute 吗? position: fixed 将相对于页面进行测量,但 absolute 将相对于将 position 指定为静态以外的最近的父级。如果这确实是问题所在,当您不拖动东西时,您可能会在页面右上角看到按钮,因为您当前的样式应该将它们放在页面顶部/右侧 10 像素处。

标签: javascript css reactjs draggable


【解决方案1】:

也许,您可以尝试提供每个 div,它是 RemoveDraggableButton CSS 属性的父级 position: relative 和可拖动按钮的 position: absolute。这样,按钮的位置将基于父元素而不是窗口对象

【讨论】:

  • 就是这样。只是为了澄清我自己的理解-“按钮将基于父元素而不是窗口对象”中的“窗口对象”是什么意思?
  • 我将窗口对象称为基于完整屏幕的变量
猜你喜欢
  • 1970-01-01
  • 2015-11-10
  • 1970-01-01
  • 2016-11-29
  • 2021-03-21
  • 1970-01-01
  • 1970-01-01
  • 2012-12-29
  • 1970-01-01
相关资源
最近更新 更多