need to collapse navbar when user clicks on screen content react svg path












0














So I got asked to make this burger button navbar collapse when the user clicks on the content inside of the screen , however this is not a bootstrap navbar to just have a data-toggle="collapse" , I am curious how I can do it with the following code :



    <Container fluid className="toolbar">

<svg
width="111px"
height="111px"
className="menuSvg"
xmlns=""
onClick={toggleSidebar}
>
<path
d=""
fill={burgerColor}
stroke={burgerColor}
strokeWidth="1"
/>
</svg>
<div className="logobuton"}>
<Logo logoColor={logo} />
</div>


and the togglesidebar function(the one I need to use when a user clicks on page content and the sidebar is active)



      toggleSidebar = () => {
this.setState(
prevState => ({
sidebarIsOpen: !prevState.sidebarIsOpen
}),
() => {
if (this.state.sidebarIsOpen) {
return document.body.style.overflowY === "hidden";
} else return null;
}
);


};



Currently to hide the active sidebar I need to press the same button again(top LEft) which is not really user friendly . Any ideas how I can change that ?










share|improve this question



























    0














    So I got asked to make this burger button navbar collapse when the user clicks on the content inside of the screen , however this is not a bootstrap navbar to just have a data-toggle="collapse" , I am curious how I can do it with the following code :



        <Container fluid className="toolbar">

    <svg
    width="111px"
    height="111px"
    className="menuSvg"
    xmlns=""
    onClick={toggleSidebar}
    >
    <path
    d=""
    fill={burgerColor}
    stroke={burgerColor}
    strokeWidth="1"
    />
    </svg>
    <div className="logobuton"}>
    <Logo logoColor={logo} />
    </div>


    and the togglesidebar function(the one I need to use when a user clicks on page content and the sidebar is active)



          toggleSidebar = () => {
    this.setState(
    prevState => ({
    sidebarIsOpen: !prevState.sidebarIsOpen
    }),
    () => {
    if (this.state.sidebarIsOpen) {
    return document.body.style.overflowY === "hidden";
    } else return null;
    }
    );


    };



    Currently to hide the active sidebar I need to press the same button again(top LEft) which is not really user friendly . Any ideas how I can change that ?










    share|improve this question

























      0












      0








      0







      So I got asked to make this burger button navbar collapse when the user clicks on the content inside of the screen , however this is not a bootstrap navbar to just have a data-toggle="collapse" , I am curious how I can do it with the following code :



          <Container fluid className="toolbar">

      <svg
      width="111px"
      height="111px"
      className="menuSvg"
      xmlns=""
      onClick={toggleSidebar}
      >
      <path
      d=""
      fill={burgerColor}
      stroke={burgerColor}
      strokeWidth="1"
      />
      </svg>
      <div className="logobuton"}>
      <Logo logoColor={logo} />
      </div>


      and the togglesidebar function(the one I need to use when a user clicks on page content and the sidebar is active)



            toggleSidebar = () => {
      this.setState(
      prevState => ({
      sidebarIsOpen: !prevState.sidebarIsOpen
      }),
      () => {
      if (this.state.sidebarIsOpen) {
      return document.body.style.overflowY === "hidden";
      } else return null;
      }
      );


      };



      Currently to hide the active sidebar I need to press the same button again(top LEft) which is not really user friendly . Any ideas how I can change that ?










      share|improve this question













      So I got asked to make this burger button navbar collapse when the user clicks on the content inside of the screen , however this is not a bootstrap navbar to just have a data-toggle="collapse" , I am curious how I can do it with the following code :



          <Container fluid className="toolbar">

      <svg
      width="111px"
      height="111px"
      className="menuSvg"
      xmlns=""
      onClick={toggleSidebar}
      >
      <path
      d=""
      fill={burgerColor}
      stroke={burgerColor}
      strokeWidth="1"
      />
      </svg>
      <div className="logobuton"}>
      <Logo logoColor={logo} />
      </div>


      and the togglesidebar function(the one I need to use when a user clicks on page content and the sidebar is active)



            toggleSidebar = () => {
      this.setState(
      prevState => ({
      sidebarIsOpen: !prevState.sidebarIsOpen
      }),
      () => {
      if (this.state.sidebarIsOpen) {
      return document.body.style.overflowY === "hidden";
      } else return null;
      }
      );


      };



      Currently to hide the active sidebar I need to press the same button again(top LEft) which is not really user friendly . Any ideas how I can change that ?







      javascript css reactjs navbar






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 23 '18 at 10:25









      sod.heretic

      619




      619
























          1 Answer
          1






          active

          oldest

          votes


















          0














          Actually, you can use a CSS trick for it: put an input tag and write a CSS for it to toggle anything you want.






          input {
          display: none;
          }

          input:checked ~ span {
          color: red;
          }

          span {
          color: blue;
          cursor: pointer;
          }

          <label>
          <input type="checkbox" />
          <span>Click me to toggle red/blue color<span>
          </label>





          Remember, the upper codes are a sample to using CSS action, I don't know all of your codes. But when you can use CSS why do you insert JavaScript code?






          share|improve this answer























            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53444886%2fneed-to-collapse-navbar-when-user-clicks-on-screen-content-react-svg-path%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            0














            Actually, you can use a CSS trick for it: put an input tag and write a CSS for it to toggle anything you want.






            input {
            display: none;
            }

            input:checked ~ span {
            color: red;
            }

            span {
            color: blue;
            cursor: pointer;
            }

            <label>
            <input type="checkbox" />
            <span>Click me to toggle red/blue color<span>
            </label>





            Remember, the upper codes are a sample to using CSS action, I don't know all of your codes. But when you can use CSS why do you insert JavaScript code?






            share|improve this answer




























              0














              Actually, you can use a CSS trick for it: put an input tag and write a CSS for it to toggle anything you want.






              input {
              display: none;
              }

              input:checked ~ span {
              color: red;
              }

              span {
              color: blue;
              cursor: pointer;
              }

              <label>
              <input type="checkbox" />
              <span>Click me to toggle red/blue color<span>
              </label>





              Remember, the upper codes are a sample to using CSS action, I don't know all of your codes. But when you can use CSS why do you insert JavaScript code?






              share|improve this answer


























                0












                0








                0






                Actually, you can use a CSS trick for it: put an input tag and write a CSS for it to toggle anything you want.






                input {
                display: none;
                }

                input:checked ~ span {
                color: red;
                }

                span {
                color: blue;
                cursor: pointer;
                }

                <label>
                <input type="checkbox" />
                <span>Click me to toggle red/blue color<span>
                </label>





                Remember, the upper codes are a sample to using CSS action, I don't know all of your codes. But when you can use CSS why do you insert JavaScript code?






                share|improve this answer














                Actually, you can use a CSS trick for it: put an input tag and write a CSS for it to toggle anything you want.






                input {
                display: none;
                }

                input:checked ~ span {
                color: red;
                }

                span {
                color: blue;
                cursor: pointer;
                }

                <label>
                <input type="checkbox" />
                <span>Click me to toggle red/blue color<span>
                </label>





                Remember, the upper codes are a sample to using CSS action, I don't know all of your codes. But when you can use CSS why do you insert JavaScript code?






                input {
                display: none;
                }

                input:checked ~ span {
                color: red;
                }

                span {
                color: blue;
                cursor: pointer;
                }

                <label>
                <input type="checkbox" />
                <span>Click me to toggle red/blue color<span>
                </label>





                input {
                display: none;
                }

                input:checked ~ span {
                color: red;
                }

                span {
                color: blue;
                cursor: pointer;
                }

                <label>
                <input type="checkbox" />
                <span>Click me to toggle red/blue color<span>
                </label>






                share|improve this answer














                share|improve this answer



                share|improve this answer








                edited Dec 13 '18 at 8:15









                piet.t

                9,94263245




                9,94263245










                answered Nov 23 '18 at 10:46









                Elina Salamon

                186




                186






























                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.





                    Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


                    Please pay close attention to the following guidance:


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53444886%2fneed-to-collapse-navbar-when-user-clicks-on-screen-content-react-svg-path%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    What visual should I use to simply compare current year value vs last year in Power BI desktop

                    How to ignore python UserWarning in pytest?

                    Alexandru Averescu