[英]Need to make navlinks to show only when bar is clicked on smaller screened devices in react hooks
I'm trying to build a responsive portfolio site in reactjs using hooks but I can't figure out how to manipulate the CSS declaration from js file to only show the vertical nav links when the bar is clicked on 我正在尝试使用钩子在reactjs中构建一个响应式投资组合站点,但我不知道如何在单击该栏时如何处理js文件中的CSS声明以仅显示垂直导航链接
import React,{useState} from 'react'
import './navbar.css'
const Navbar =()=>{
const [display, setDisplay] = useState(false);
return(
<React.Fragment>
<div className="navlinks">[recent display on large screen][1]
<a href="#" >HOME</a>
<a href="#" >PORTFOLIO</a>
<a href="#" >BLOGS</a>
<a href="#" >CONTACT</a>
<a id="bar" href="#" onClick={()=>alert("hello")}><i className="fas fa-bars"></i></a>
</div>
/**menu to hide and show**/
<div className="slideout-menu">
<a href="#" >HOME</a>
<a href="#" >PORTFOLIO</a>
<a href="#" >BLOGS</a>
<a href="#" >CONTACT</a>
</div>
</React.Fragment>
)
}
export default Navbar;
To show the navigation only on responsive devices you should create a media query inside your navbar.css file. 要仅在响应设备上显示导航,应在navbar.css文件内创建一个媒体查询。
@media screen and (max-width: 767px) {
.hidden {
display: none;
}
.visible {
display: block;
}
}
Also, remove the bar from nonresponsive devices: 另外,从无响应的设备上删除栏:
@media screen and (min-width: 768px) {
#bar {
display: none;
}
}
Try the following: 请尝试以下操作:
import React,{useState} from 'react'
import './navbar.css'
const Navbar =()=>{
const [display, setDisplay] = useState(false);
handleNavbar = e => {
e.preventDefault();
display ? setDisplay(true) : setDisplay(false);
}
return(
<React.Fragment>
<div className="navlinks">
<a href="#" >HOME</a>
<a href="#" >PORTFOLIO</a>
<a href="#" >BLOGS</a>
<a href="#" >CONTACT</a>
<a id="bar" href="#" onClick={handleNavbar}><i className="fas fa-bars"></i></a>
</div>
<div className=`slideout-menu ${display === false ? "hidden" : "visible"}`>
<a href="#" >HOME</a>
<a href="#" >PORTFOLIO</a>
<a href="#" >BLOGS</a>
<a href="#" >CONTACT</a>
</div>
</React.Fragment>
)
}
export default Navbar;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.