简体   繁体   English

需要使导航链接仅在react挂钩中的较小屏幕设备上单击栏时显示

[英]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;

recent display on small screen 最近在小屏幕上显示

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM