0

我有一个顶部导航栏,当我单击它时需要向上移动。

    var foo = false
$(document).ready(function(){
    $(".topBar").click(function(){
        findOut();
    });
});
function up()
{
    $(".topBar").animate({height:5},"slow");
}
function down()
{

    $(".topBar").animate({height:30},"slow");
}
function findOut()
{
    if (foo===true)
    {
        down();
        up =  false;
    }
    elseif (foo===false)
    {
        up();
        up = true;
    }
}

在你问之前,是的,我确实安装了 jQuery 文件。

这是我的网站:learntc.net 最上面的吧。

4

2 回答 2

1

您是否考虑过:

  $("#topBar").click(function()
    {
        $(this).slideToggle()
    });

这将使您的酒吧上升或下降,而无需使用标志。

文档

如果您不想一直滑动它,您的代码看起来很好,除了elseif(up===false).

如果您在您的网站上尝试它,您会看到即使您将高度设置为 5px,文本仍然可见,我建议您添加一个overflow:hidden以便它可以保持隐藏

编辑 工作代码:

var up = false
$(document).ready(function(){
        $(".topBar").click(function(){
            findOut();
        });
    });
    function upFunc()
    {
        $(".topBar").animate({height:5},"slow");
    }
    function down()
    {

        $(".topBar").animate({height:30},"slow");
    }
    function findOut()
    {
        if (up===true)
        {
            down();
            up =  false;
        }
        else if (up===false)
        {
            upFunc();
            up = true;
        }
    }
于 2012-08-19T21:16:31.103 回答
0

您正在重新定义 up 变量以等于 up() 函数。也许改为:

var isup = false;
于 2012-08-19T21:26:29.403 回答