【问题标题】:ReactJS: How to create a transparent page?ReactJS:如何创建透明页面?
【发布时间】:2016-11-02 21:44:21
【问题描述】:

我目前有一个页面和一个按钮。单击按钮后,我想更新状态属性,一旦更新,组件将重新渲染并在原始页面上显示透明页面。

想要这样的透明页面:

到目前为止,我想到了类似的东西:

render() {
if(this.state.buttonPressed) {
  return(
    <div style={styles.transparentPage}>
       //transparentPage content
    </div>
  )
} else {
  return(
    <div style={styles.originalPage}>
       //originalPage content
    </div>
  )
}

但这会完全删除 originalPage 并使用 transparentPage 重新呈现。那么在原始页面上实现透明页面的正确/正确方法是什么?

【问题讨论】:

    标签: html css reactjs redux react-jsx


    【解决方案1】:

    你需要做的就是拥有类似

    的东西
    render() {
      var overlay = this.state.buttonPressed ? <div className="overlay" /> : null;
    
      return(
        <div style={styles.originalPage}>
          {overlay}
        </div>
      )
    }
    

    然后在你的css中做:

    .overlay {
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: rgba(250,250,250,.5);
      z-index: 25;
    
    }
    

    只要确保模态框的 z-index 大于覆盖 z-index,这样它就不会使其透明

    【讨论】:

    • 这是只使用 html css codepen.io/finalfreq/pen/dObJre 的笔
    • 在里面,我会像这样&lt;div style={styles.originalPage}&gt; {overlay} &lt;div&gt;Original content&lt;/div&gt; &lt;/div&gt;?
    • 确切地说,所有的叠加层都是你想要的任何 dom 元素以及添加到它的类,因为它的固定位置可以在 DOM 树中的任何位置并且仍然产生你想要的结果。您只想确保它仅在需要叠加层时在 dom 中呈现,因此将其分配给变量并使用三元组来决定它应该是元素还是 null。
    猜你喜欢
    • 1970-01-01
    • 2010-09-20
    • 1970-01-01
    • 2017-02-07
    • 1970-01-01
    • 2011-02-12
    • 1970-01-01
    • 2011-06-03
    • 1970-01-01
    相关资源
    最近更新 更多