React-Spring Parallax Layer内可点击组件失效问题求助
React-Spring Parallax Layer内导航栏按钮无法点击的解决方案
你的导航栏按钮点击无响应,本质是前面的Parallax图层层级更高,覆盖在了导航栏所在图层之上,那些背景图对应的DOM元素会拦截点击事件,导致按钮接收不到点击信号。
下面是两种可行的解决方法:
方法1:提升导航栏所在图层的层级
给导航栏所在的ParallaxLayer设置更高的z-index,让它处于所有图层的最上层:
<ParallaxLayer offset={3} speed={.5} style={{ zIndex: 100 }} // 设为足够大的数值,确保覆盖其他图层 > <div className="text"> <h1>Space Is The Place!</h1> </div> <NavBar /> </ParallaxLayer>
方法2:让背景图层不拦截点击事件
对于那些纯背景用途的ParallaxLayer(比如moon、planet、stars1、stars2这些),添加pointer-events: none样式,这样它们会忽略所有鼠标事件,点击会直接穿透到下面的图层:
// 以moon图层为例,其他背景图层同理 <ParallaxLayer offset={0} factor={4} style={{ backgroundImage: `url(${moon})`, backgroundSize: 'cover', pointerEvents: 'none' // 禁用点击拦截 }} > </ParallaxLayer>
⚠️ 注意:如果某个图层包含可交互元素(比如那个ufo图层),不要给它加这个属性,否则该元素也会失去交互能力。
内容的提问来源于stack exchange,提问作者Max McBride
相关产品推荐
相关产品推荐

