Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ReactJS-更改滚动条上的导航栏颜色_Javascript_Reactjs_Scroll_Navbar - Fatal编程技术网

Javascript ReactJS-更改滚动条上的导航栏颜色

Javascript ReactJS-更改滚动条上的导航栏颜色,javascript,reactjs,scroll,navbar,Javascript,Reactjs,Scroll,Navbar,我有以下代码: import React, {useState} from 'React'; import Header from './styles.js'; const HeaderComponent = props => { const [navBg, setNavBg] = useState(false); const isHome = props.name === 'Homepage' ? true : false; const changeNavBg = ()

我有以下代码:

import React, {useState} from 'React';
import Header from './styles.js';

const HeaderComponent = props => 
{
  const [navBg, setNavBg] = useState(false);
  const isHome = props.name === 'Homepage' ? true : false;

  const changeNavBg = () =>
  {
   window.scrollY >= 800 ? setNavBg(true) : setNavBg(false);
  }

  window.addEventListener('scroll', changeNavBg);

  return (
  <Header {...(isHome && navBg ? { backgroundColor: '#00008' : {})} />
  )
}
import React,{useState}来自“React”;
从“/styles.js”导入标题;
const HeaderComponent=props=>
{
const[navBg,setNavBg]=useState(false);
const-isHome=props.name=='Homepage'?true:false;
const changeNavBg=()=>
{
window.scrollY>=800?setNavBg(真):setNavBg(假);
}
window.addEventListener('scroll',changeNavBg);
返回(
)
}
我试图实现的是,当滚动超过800px时,我希望我的标题改变颜色


为您的时间干杯。

以下是一些您可以尝试的方法

1.使用React UI事件
返回(
)
2.考虑将侦听器绑定到<代码>使用效果< /代码>
import React,{useState}来自“React”;
从“/styles.js”导入标题;
const HeaderComponent=props=>{
const[navBg,setNavBg]=useState(false);
const-isHome=props.name=='Homepage'?true:false;
const changeNavBg=()=>{
window.scrollY>=800?setNavBg(真):setNavBg(假);
}
useffect(()=>{
window.addEventListener('scroll',changeNavBg);
return()=>{
window.removeEventListener('scroll',changeNavBg);
}
}, [])
返回(
)
}

实际上,我已经通过在my styles.js中将navBg作为道具传递并在那里检查它是否设置为true&isHome来修复它。我会把你的答案标记为正确,因为你应得的努力。谢谢,很好。谢谢无论如何,这里有一个有效的例子