Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript动画打开/关闭菜单_Javascript_Jquery_Html_Css_Animation - Fatal编程技术网

Javascript动画打开/关闭菜单

Javascript动画打开/关闭菜单,javascript,jquery,html,css,animation,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; }; func

我正在为我正在构建的网页制作一个简单的打开/关闭动画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>
因此,这背后的想法是,每当用户单击锚定时,它都会运行openClose函数。在初始页面加载时,slideOpen=1,如果用户单击锚定,如果slideOpen=1,则运行closeTab动画功能,然后将slideOpen=0。如果slideOpen=0,则应运行openTab动画功能并将slideOpen=1

基本上: 如果选项卡处于打开状态,则slideOpen=1; 如果选项卡已关闭,则slideOpen=0

但是,我在这个函数中还设置了两个警报;初始页面加载,每次调用openClose函数时运行

在初始页面加载时,slideOpen警报显示:1。单击锚定以关闭选项卡后,openClose函数中的slideOpen警报显示为0,选项卡将成功关闭。再次单击锚定,警报显示再次为0,选项卡不会重新打开。它应该显示slideOpen=1,但由于某些原因,它不是。这就是我的问题所在

提前谢谢

if (slideOpen = 1){
在这里,您将为变量slideOpen指定1,因此条件的计算结果将始终为true

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


嘿-你试过了吗?它会自动跟踪你的可见状态,所以你不必这样做。我可能会在以后添加,谢谢你给我看。但是,问题是,即使是我自己的开关也不起作用。谢谢,这是正确的,但这只解决了我的问题的一半。现在,当您单击锚定时,选项卡将设置关闭动画,然后立即重新打开。除了=到==,我没有做任何更改。@user2217822它似乎工作得很好@user2217822是否对slideOpen==0执行了相同的操作?@easwee我在ans中提到过这两种情况:@TilwinJoy是的-但只是检查一下他是否错过了:
if (slideOpen == 1){