简体   繁体   English

显示/隐藏是否使用纯JavaScript

[英]show/hide if in pure javascript

I wrote a script that hide/show me sidenav. 我写了一个脚本,向我隐藏/显示sidenav。 My problem is that I would like to have all in one function. 我的问题是我想拥有所有功能。 First, whether that examined the sidenav is hidden or not. 首先,被检查的卫星导航是否被隐藏。 If hidden, by clicking showed sidenav and if sidenav visible, click to hide sidenav. 如果隐藏,请单击显示的sidenav,如果可见,请单击以隐藏sidenav。 My code: 我的代码:

function showSideNav () {
    var sideNav = document.getElementById("slide-out");

    sideNav.style.cssText = "transform: translateX(0); -webkit-transition: 0.5s;";
}

function closeSideNav () {
    var sideNav = document.getElementById("slide-out");

    sideNav.style.cssText = "transform: translateX(-100%); -webkit-transition: 0.5s;";
}

You can implement a boolean variable holding information if the sidenav is visible or not and according to it's value - show it or hide. 您可以实现一个boolean变量,该变量可以保存sidenav是否可见以及根据其值显示或隐藏信息的信息。

 var sideNav = document.getElementById("slide-out"), sideNavVisible = true; function toggleSideNav() { if (sideNavVisible) { sideNav.style.cssText = "transform: translateX(-100%); -webkit-transition: 0.5s;"; } else { sideNav.style.cssText = "transform: translateX(0); -webkit-transition: 0.5s;"; } sideNavVisible = !sideNavVisible; } 
 * { padding: 0; margin: 0; } #slide-out { height: 100px; width: 100px; background: blue; position: absolute; } .container { height: 100vh; width: 100vw } .x { right: 0; position: fixed; } 
 <div id='slide-out'></div> <button onclick="toggleSideNav()" class='x'>Toggle sidenav</button> <div class='container' onclick='sideNavVisible = true;toggleSideNav()'></div> 

I think it would be easier to manage if you put the CSS in a style sheet with classes, and then in JS toggle those classes: 我认为,如果将CSS放在带有类的样式表中,然后在JS中切换这些类,则管理起来会更容易:

 function toggleSideNav () { var sideNav = document.getElementById("slide-out"); sideNav.classList.toggle("hidden"); sideNav.classList.toggle("visible"); } // button for demo purposes: document.querySelector("button").addEventListener("click", toggleSideNav); 
 .visible { transform: translateX(0); -webkit-transition: 0.5s; } .hidden { transform: translateX(-100%); -webkit-transition: 0.5s; } 
 <button>Toggle</button> <div id="slide-out" class="visible">This is my test sliding div.</div> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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