React简单遮罩层
CSS代码
.mask{
background: rgba(0,0,0,0.4) !important;
z-index: 10;
height: 100vh;
position: fixed;
width: 100vw;
}
.selectMask_box{
background: rgba(0,0,0,0);
transition: all .2s linear
}
.absolute{
position: relative;
background-color: transparent;
z-index: 999;
width: 100%;
height: 55px;
}
JS代码
handleMask=()=>{
this.setState({
dateSelected: !this.state.dateSelected
})
}
<div
onClick={this.handleMask}
className={`selectMask_box ${this.state.dateSelected ? "mask" : ""} `} >
//这里是待展示的内容,<div>...</div>
//你可以自己设置dataSelected的初始值,同时请注意注意三元运算的顺序。
</div>
把 div放到页面最上方,给需要的菜单栏加相对定位,z-index即可

import React, {Component} from 'react' import './Header.scss' import DropdownButton from "react-bootstrap/DropdownButton"; import BootDropdown from "react-bootstrap/Dropdown"; class Header extends Component { constructor(props) { super(props); this.state = { dateSelected:false } } handleMask = () => { this.setState({ dateSelected: !this.state.dateSelected }) } render() { return ( <div > <div className={`selectMask_box ${this.state.dateSelected ? "mask" : ""} `} /> { window.innerWidth > 800 ? <div style={{ display: 'flex', flexDirection: 'row', justifyContent: 'space-between', maxWidth: 1240, padding: '0 20px', height: window.innerWidth > 800 ? 100 : 50, alignItems: 'center', margin: '0 auto' }}> <div> <a href="https://www.fowin.io"><img style={{height: window.innerWidth > 800 ? 28 : 16}} src={require('../../assets/image/logo@2x.png')} alt=""/></a> </div> <div> <ul style={{display:"flex",justifyContent:"space-between",width:300}} className={'nav_pc'}> <li><a style={{color:'#19448E',fontSize:14}} href={'#'}>关于我们</a></li> <li><a style={{color:'#19448E',fontSize:14}} href="https://www.fowin.io/download">App下载</a></li> <li><a style={{color:'#19448E',fontSize:14}} href={'/help'}>帮助中心</a></li> </ul> </div> </div> : <div className={'absolute'}> <div style={{ display: 'flex', flexDirection: 'row', justifyContent: 'space-between', maxWidth: 1240, padding: '0 20px', height: window.innerWidth > 800 ? 100 : 50, alignItems: 'center', margin: '0 auto', backgroundColor:'#fff' }}> <div className={'mobiel_btn'}> <div> <a href="https://www.fowin.io"><img style={{height: window.innerWidth > 800 ? 28 : 16}} src={require('../../assets/image/logo@2x.png')} alt=""/></a> </div> <div> <DropdownButton onClick={this.handleMask} alignRight title={<img src={require('../../assets/image/help_btn_screen@2x.png')} alt=""/>} id="dropdown-menu-align-right" > <BootDropdown.Item href={'#'} eventKey="1">关于我们</BootDropdown.Item> <BootDropdown.Item href={'https://www.fowin.io/download'} eventKey="2">App下载</BootDropdown.Item> <BootDropdown.Item href={'/help'} eventKey="3">帮助中心</BootDropdown.Item> </DropdownButton> </div> <div><span style={{color: '#00233D', fontSize: window.innerWidth > 800 ? 16 : 14,}} onClick={() => { this.props.history.push('/help'); }}> {/*<img style={{height: window.innerWidth > 800 ? 28 : 16}}*/} {/* src={require('../../assets/image/help_btn_screen@2x.png')} alt=""/>*/} </span></div> </div> </div> </div> } </div> ) } } export default Header;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人