Javascript 带有vanilia js和css的移动动画
我想使动画显示和隐藏导航菜单一样,在 我试着用JS来做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
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");
}
})
});