我用react-responsive-modal
在我的应用程序中打开一些模式。当我打开模态时,有一个叠加效果会使模态后面的背景变暗。有什么方法可以使背景变暗100%或为背景设置任何颜色,以便在再次打开模态之前看不到模态打开之前存在的东西?

我为ModalComponent中的模态MainComponent创建了一个新组件,当我单击按钮时会呈现该组件:
ModalComponent:

render() {
 return (
  <div className="childDiv">
    <Modal
      open={open}
      onClose={this.onCloseModal}
      center
      classNames={{
        transitionEnter: styles.transitionEnter,
        transitionEnterActive: styles.transitionEnterActive,
        transitionExit: styles.transitionExitActive,
        transitionExitActive: styles.transitionExitActive
      }}
      animationDuration={1000}
    >
   ...

主要成分:
<div>
    <div className="outter" onClick={this.openModal.bind(this)}>
//Open Modal when clicking on this div
      <p className="arrival">Ankunft am Ziel: ~ {this.props.arrival} Uhr</p>
      <p className="price">max. {this.props.price} €</p>
      {this.state.open && (
        <BookingModalNew
          open={this.state.open}
          triggerCloseModal={this.closeModal.bind(this)}
          destination={this.props.destination}
          arrival={this.props.arrival}
          price={this.props.price}
        />
      )}
//Whole Stuff should not be visible while Modal is opened

最佳答案

只需将具有overlay样式的对象分配给渲染中的变量bg,然后使用styles属性在Modal中引用该对象。像这样:

render() {

 const bg = {
   overlay: {
     background: "#FFFF00"
   }
 };

 return (
  <div className="childDiv">
    <Modal open={open} onClose={this.onCloseModal} center styles={bg} }}>
        <p>Your Modal Content</p>
    </Modal>
  </div>
 )

}

但请等待。当我们可以直接编写样式而不是这样时,为什么要创建一个额外的对象:
<Modal open={open} onClose={this.onCloseModal} center styles={background: "#FFFF00"}>
    <p>Your Modal Content</p>
</Modal>

即使看起来与我的代码做相同的事情,上述方法也无法使用,这是因为您不能直接在react-responsive-modal上直接内联指定样式。您需要先将样式放在对象中,然后将styles属性引用到该对象。

但是,您可以通过执行以下操作在styles属性本身中创建对象:
<Modal open={open} onClose={this.onCloseModal} center styles={{ overlay: { background: "#FFFF00" } }}>
    <p>Your Modal Content</p>
</Modal>

但是建议您在外部定义对象,然后在styles属性内部引用它,如上所示。

关于javascript - React-active-modal:打开模式时更改背景颜色,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54067249/

10-11 05:54