【发布时间】:2017-01-10 17:35:09
【问题描述】:
我试图在按下某个按钮时显示一个 div,并让它在 .hidden 类(隐藏 div)之间切换。我试图通过添加过渡来制作动画,但由于某种原因,它被隐藏的事实以某种方式破坏了这一点。简而言之,我想知道是否有一种方法可以为隐藏状态和可见状态之间的过渡设置动画。
var main = function() {
$("#myMenu").css("height", window.innerHeight);
$("#myMenu").css("width", window.innerWidth);
}
$(document).ready(main);
.toggle {
font-size: 20px;
margin: 20px;
margin-top: 30px;
display: block;
position: fixed;
top: 0;
right: 0;
z-index: 100;
}
.hidden {
visibility: none;
display: none;
}
.menu {
background-color: red;
position: fixed;
top: 0;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!--contains hamburger-->
<div class="toggle">
<a id="tButton" href="javascript:void(0);" onclick="toggleNav()">☰</a>
</div>
<!--actual mobile menu-->
<div id="myMenu" class="menu hidden">
<ul>
<li><a onclick="toggleNav()">Home</a>
</li>
<li><a onclick="toggleNav()">Events</a>
</li>
<li><a onclick="toggleNav()">About</a>
</li>
<li><a onclick="toggleNav()">Volunteer</a>
</li>
<li><a onclick="toggleNav()">Contact</a>
</li>
</ul>
</div>
<script>
function toggleNav() {
$("#myMenu").toggleClass("hidden");
if ($("#myMenu").hasClass("hidden")) {
$("#tButton").text(String.fromCharCode(9776));
} else {
$("#tButton").text(String.fromCharCode(10005));
}
}
</script>
【问题讨论】:
-
fadeToggle --- slideToggle ...
-
这行得通,但是如果我希望菜单以隐藏的形式开始呢?
-
在 CSS 上将其作为 'display:none' 启动
标签: javascript jquery css jquery-animate css-transitions