【问题标题】:Quite basic JQuery Animation-queuing, ain't working though相当基本的 JQuery 动画队列,虽然不起作用
【发布时间】:2011-06-25 13:57:25
【问题描述】:

所以,我有了这个很棒的 (?) 想法来构建我自己的标签系统,因为我尝试过的所有脚本都没有像我希望的那样工作。

我有一个带有链接的列表,以及一些隐藏的 div。单击一个 LI,任何可见的 div 都会隐藏,然后所选的链接/div 会淡入。

HTML

<ul>
<li id="tab1">Link</li>
<li id="tab2">Link</li>
<li id="tab3">Link</li>
</ul>

<div id="tab1div">Content</div>
<div id="tab2div">Content</div>
<div id="tab3div">Content</div>

JS

$('li').click(function(){

    $('div:visible').fadeOut(1000)
    .queue(function () {
        var id = $(this).attr('id');
        $('div#' + id + "div").fadeIn('slow');
        $(this).dequeue();
    });
});

现在,问题出在动画上(除了脚本不起作用)。我的目标是为任何可见的 DIV 设置一个 fadeOut('fast'),然后为选定的 li/div 设置一个 fadeIn('slow')。排队,就是这样。

有什么想法吗?

【问题讨论】:

    标签: jquery animation jquery-animate queueing


    【解决方案1】:

    jQuery fadeOut 可以有两个参数,第二个是动画完成后调用的函数,所以这可能是你想要的:

    $('li').click(function(){
        var id = $(this).attr('id');
        $('div:visible').fadeOut(1000, function () {
            $('#' + id + "div").fadeIn('slow');
        });
    });
    

    【讨论】:

    • 如果其中一个 div 从一开始就可见,则工作正常。是否可以一开始就将它们全部隐藏?
    • 您必须检查$('div:visible') 是否为空,如果是则忽略fadeOut 部分。
    猜你喜欢
    • 2014-09-17
    • 1970-01-01
    • 2012-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多