动画汉堡菜单
简介
小型交互式 UI 动画向用户传达状态和用途。一个常见的情况是,汉堡菜单按钮在打开时会动画变为“X”。此动画表示用户可以再次按下同一按钮以关闭菜单。
CSS 动画
以下是汉堡菜单的自定义样式和 CSS 动画
<style amp-custom>
.hamburger_wrapper {
padding: 5px;
z-index: 10;
}
#hamburger {
width: 60px;
height: 45px;
position: relative;
cursor: pointer;
outline: none;
}
#hamburger span {
display: block;
position: absolute;
height: 9px;
width: 100%;
background: #005af0;
border-radius: 9px;
opacity: 1;
left: 0;
transform: rotate(0deg);
transition: .5s ease-in-out;
}
#hamburger span:nth-child(1) {
top: 0px;
transform-origin: left center;
}
#hamburger span:nth-child(2) {
top: 21px;
transform-origin: left center;
}
#hamburger span:nth-child(3) {
top: 42px;
transform-origin: left center;
}
#hamburger.close span:nth-child(1) {
transform: rotate(45deg);
}
#hamburger.close span:nth-child(2) {
width: 0%;
opacity: 0;
transition: .1s;
}
#hamburger.close span:nth-child(3) {
transform: rotate(-45deg);
}
#nav-menu {
position: relative;
transform: translateX(-100vw);
opacity: 0;
z-index: 10;
transition: transform .5s ease, opacity ease .2s;
}
#nav-menu.now-active {
transform: translateX(0);
transition: transform .5s ease, opacity ease .2s;
opacity: 1;
background-color: #eaeaea;
}
.nav-list {
padding: 10px;
list-style-type: none;
font-size: 2em;
}
</style>
标记
汉堡菜单元素在 div
内包含三个样式化的 span
元素。汉堡 div
使用 tap
AMP 操作来触发 toggleClass()
事件,该事件通过其 id
定位元素。在此示例中,它定位 hamburger
。
toggleClass()
事件将添加和删除作为参数提供的任何类。此示例传递 class='close'
。此外,它还会切换导航菜单的动画类以滑出。
<div class="hamburger_wrapper">
<div id="hamburger" tabindex="1" role="button" on="tap:hamburger.toggleClass(class='close'),nav-menu.toggleClass(class='now-active')">
<span></span>
<span></span>
<span></span>
</div>
</div>
<div id="nav-menu">
<ul class="nav-list">
<li><a href="#">Home</a></li>
<li><a href="#">Account</a></li>
<li><a href="#">Products</a></li>
<li><a href="#">Support</a></li>
</ul>
</div>
需要进一步解释吗?
如果此页面上的解释未涵盖您的所有问题,请随时与其他 AMP 用户联系,讨论您的具体用例。
前往 Stack Overflow 未解释的功能?AMP 项目强烈鼓励您的参与和贡献!我们希望您成为我们开源社区的持续参与者,但我们也欢迎您为自己特别感兴趣的问题做出一次性贡献。
在 GitHub 上编辑示例-
由 @CrystalOnScript 编写