gpt4 book ai didi

javascript - 仅使用 Javascript 滑出菜单

转载 作者:太空宇宙 更新时间:2023-11-03 23:14:38 25 4
gpt4 key购买 nike

我想通过仅使用 Javascript 创建一个单击按钮时的滑出式菜单。我知道存在许多解决方案,但它们都使用 jQuery。我想专门使用 Javascript 对其进行编码。有人可以帮我吗?

HTML

<li class="menu"><a href="#about" id="mainmenu">Menu<span class="box-shadow-menu"></span></a>
<ul class="sub" id="sub">
<li><a href="#">Dashboard></a></li>
<li><a href="#">My Profile</a></li>
<li><a href="#">Settings</a></li>
<li><a href="#">Help</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Logout</a></li>
</ul>
</li>

CSS

#sub
{
color: #FFF;
background-color: #662D91;
display: none;
position: fixed;
top: 0;
right: 0;
border-left: 1px solid #000;
height: 100%;
width: 238px;
padding: 15px 25px;
margin: 0;
z-index: 20;
}
#sub a
{
display: block;
font-size: 1.1em;
color: #fff;
padding: 15px 0;
border-bottom: 1px solid rgba( 255, 255, 255, 0.05 );
}

它应该从右端向左滑动。并且当发生滑出时,Menu 元素也应该存在。

最佳答案

您可以使用 css 转换轻松完成,不需要 jquery 或任何其他库,甚至不需要通过 javascript 制作动画。我创建了一个滑入/滑出子菜单的简单示例:http://jsfiddle.net/pisamce/97x76otx/Javascript用于切换css类,动画由css完成。

var menubtn = document.getElementById('mainmenu');
var sub = document.getElementById('sub');
menubtn.addEventListener('click', function () {
var closed = sub.className.indexOf('closed') !== -1;
if (closed) {
sub.className = sub.className.replace('closed', 'open');
} else {
sub.className = sub.className.replace('open', 'closed');
}
});
.sub {
position: absolute;
}
.open {
left:0;
-webkit-transition: all 500ms cubic-bezier(0.680, 0, 0.265, 1);
-webkit-transition: all 500ms cubic-bezier(0.680, -0.550, 0.265, 1.550);
-moz-transition: all 500ms cubic-bezier(0.680, -0.550, 0.265, 1.550);
-o-transition: all 500ms cubic-bezier(0.680, -0.550, 0.265, 1.550);
transition: all 500ms cubic-bezier(0.680, -0.550, 0.265, 1.550);
}
.closed {
left:-100%;
-webkit-transition: all 500ms cubic-bezier(0.680, 0, 0.265, 1);
-webkit-transition: all 500ms cubic-bezier(0.680, -0.550, 0.265, 1.550);
-moz-transition: all 500ms cubic-bezier(0.680, -0.550, 0.265, 1.550);
-o-transition: all 500ms cubic-bezier(0.680, -0.550, 0.265, 1.550);
transition: all 500ms cubic-bezier(0.680, -0.550, 0.265, 1.550);
}
<li class="menu"><a href="#about" id="mainmenu">Menu<span class="box-shadow-menu"></span></a> 
</ul>
<ul class="sub closed" id="sub">
<li><a href="#">Dashboard</a>
</li>
<li><a href="#">My Profile</a>
</li>
<li><a href="#">Settings</a>
</li>
<li><a href="#">Help</a>
</li>
<li><a href="#">About</a>
</li>
<li><a href="#">Logout</a>
</li>
</ul>
</li>

关于javascript - 仅使用 Javascript 滑出菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31106492/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com