Javascript 动画打开/关闭菜单

标签 javascript jquery html css animation

我正在为我正在构建的网页制作一个简单的打开/关闭动画 DIV。它应该很简单,但有些事情让我挂断电话。这是我的 JS 代码:

<script>
slideOpen = 1;
alert(slideOpen);

function openClose(){

if (slideOpen = 1){
    closeTab();
    slideOpen = 0;
};
if (slideOpen = 0){
    openTab();
    slideOpen = 1;
};
function closeTab(){
    $("#upcomingEvents").animate({top:"-910px"});
}

function openTab(){
    $("#upcomingEvents").animate({top:"-300px"});
}
alert(slideOpen);
}
</script>

这是运行该函数的 HTML:

<a href="javascript:openClose();" style="position: absolute; bottom: 32px; right: 32px;" >Open/Close Tab</a>

因此,这背后的想法是,每当用户单击 anchor 时,它都会运行 openClose() 函数。在初始页面加载时,slideOpen = 1,如果用户单击 anchor ,如果 slideOpen = 1,它将运行 closeTab() 动画函数,然后设置 slideOpen = 0。如果 slideOpen = 0,openTab() 动画函数应该运行并且设置 slideOpen = 1。

基本上: 如果选项卡打开 slideOpen = 1; 如果选项卡关闭 slideOpen = 0;

但是,我在这个函数中也设置了两个警报;一个在页面加载时启动,一个在每次调用 openClose() 函数时运行。

在初始页面加载时,slideOpen 警报显示“1”。单击 anchor 关闭选项卡后,openClose() 函数中的 slideOpen 警报显示“0”,选项卡成功关闭。再次单击 anchor ,警报再次显示“0”并且选项卡不会重新打开。它应该显示 slideOpen = "1",但由于某些原因不是。这就是我的问题。

提前致谢。

最佳答案

if (slideOpen = 1){

此处您将 ​​1 分配给变量 slideOpen,因此条件将始终计算为真。

对这两种情况都使用== 而不是=

喜欢

if (slideOpen == 1){

关于Javascript 动画打开/关闭菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22694224/

相关文章:

javascript - 为什么当我点击按钮时我的标题没有改变?

jQuery - CSS 属性名称

jquery - 每个 session 设置一次随机背景图像

javascript - JavaScript 中的类变量

javascript - self 检测每个页面单击的菜单项的最佳实践是什么?

javascript - 如果表单组中的任何一个有效,则删除表单中必需的所有属性

javascript - 无法获取 Promise/ajax 数据以返回父函数

javascript - $(this).attr ('id' );不工作

javascript - 弹出窗口不适用于 Bootstrap ?

html - 如何设置圆形图像?