Javascript 带有vanilia js和css的移动动画

Javascript 带有vanilia js和css的移动动画,javascript,html,css,Javascript,Html,Css,我想使动画显示和隐藏导航菜单一样,在 我试着用JS来做 const body = document.getElementsByTagName("body")[0]; let element = document.querySelector(".navigation"); let button = document.querySelector(".menu-button"); button.addEventListener("click", function() { button.clas

我想使动画显示和隐藏导航菜单一样,在

我试着用JS来做

const body = document.getElementsByTagName("body")[0];
let element = document.querySelector(".navigation");
let button = document.querySelector(".menu-button");

 button.addEventListener("click", function() {
  button.classList.toggle("menu-button--changed");
  element.classList.toggle("navigation--show");
});
和宽度scss

.navigation {
  background-color: rgb(14, 14, 23);
  width: 250px;
  height: 100vh;
  position: fixed;
  right: 0;
  top: 0;
  z-index: 3;
  padding: 6rem 0 2rem 0rem;
  transition: transform 0.3s ease-out;
  transform: translateX(30rem);
  &--show {
    transform: translateX(0rem);
  }

 &__item {
    list-style: none;
    border-top: 1px solid rgba(255, 255, 255, 0.03);

    &:last-child {
      border-bottom: 1px solid rgba(255, 255, 255, 0.03);
    }
  }
  &__link {
    color: #fff;
    text-decoration: none;
    display: block;
    padding: 11px 5px 10px 20px;
    font-size: 1.4rem;

    &:hover {
      text-transform: uppercase;
    }
  }
}
HTML


但它不能正常工作。当我显示菜单时,我不知道如何将身体向左移动,并将其更改为更暗。
我试图添加,但动画不起作用。

将主页视为一个元素,并使用overflow hidden

假设移动设备上的主列是100%,当您单击菜单按钮时,它将更改为60%,菜单将更改为40%


Bootstrap对此有一个基本的解释,这是我刚才为另一个问题做的一个非常基本的解释,它与您所问的类似。基本上,当用户到达某个滚动点时,导航栏会改变颜色。希望能成为一个起点,让它消失然后重新出现

HTML

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!-- navigation -->
<nav class="navbar navbar-fixed-top" id="nav">
    <div class="container">
        <div class="navbar-header">
            <!-- Mobile Hamburger -->
            <button type="button" class="navbar-toggle" id="nav-icon" data-toggle="collapse" data-target=".navbar-collapse">
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand logo" href=""><img id="logo" src="assets/img/logo.png" alt="Flock+ Logo"></a>
        </div>
        <div class="navbar-collapse collapse">
            <!-- Navigation Links -->
            <ul class="nav navbar-nav navbar-right">
                <li><a href="">HOME</a></li>
                <li><a href="">COURSES</a></li>
                <li><a href="">PRICING</a></li>
                <li><a href="">ACCOUNT</a></li>
                <li><a href="">CONTACT</a></li>
            </ul>
        </div>
    </div>
</nav>

<div style="height:1000px"></div>
JS

.navbar { 
  background-color:#101010; 
  border:none; 
  height: 200vh;
}
#logo { 
  width:45px; 
  height:auto; 
 }
.navbar-right li a { 
  color:#e5e5e5;  
  font-size:14px; 
}
ul.navbar-right li a:hover { 
  color:#e5e5e5; 
  text-decoration: none; 
  background-color:transparent; 
}
ul.navbar-right li a:visited { 
  color:#e5e5e5; 
  text-decoration:none; 
}
/* Transitions */
.navbar { background-color: transparent; border:none; transition:0.8s; }
.nav-scrolled { background-color:#181818; transition:0.8s; }
.navbar-right li a { letter-spacing:3px; }
// Change nav on scroll
$(function() {
    var header = $(".navbar");

    $(window).scroll(function() {    
        var scroll = $(window).scrollTop();
        if (scroll >= 200) {
            header.addClass("nav-scrolled");
        } else {
            header.removeClass("nav-scrolled");
        }
    })
});
ALT:

// Change nav on scroll
$(function() {
    var header = $(".navbar");

    $(window).scroll(function() {    
        var scroll = $(window).scrollTop();
        if (scroll >= 200) {
            header.addClass("nav-scrolled");
        } else {
            header.removeClass("nav-scrolled");
        }
    })
});