1

http://mmowned.org/dragon/slm/menu9.html

为了解决旧版本(menu7.html)中的动画排队问题,我尝试在下拉菜单中使用 .stop() 。问题是当您在中途“停止”下拉菜单然后重新启动它时,它会破坏菜单并且只会延伸回它停止的位置:/

我很确定这真的很简单,但是我该如何解决呢?

$(document).ready(function() {  
    var nid=["bottom","nav","news","wow","emu","war","aoc","diablo","prog","trade"];  
    $('li.navhead2').click(function () {  
    var id = $(this).attr('id')  
    var query = jQuery.inArray(id, nid)  
    if (query !== -1 && query !== 0)  
    {  
       $("#menu"+query).slideFadeToggle('slow');  
        if (query !== 1 && query !== 0)  
        {  
        $(this).toggleClass("clicked");  
        }  
        else  
        {  
        $(this).toggleClass("clicked1");  
        }  
    }  
    else if (query === 0)  
    {
    $("[id^=menu]").not("#menu1").slideUp('fast');  
    $("li.navhead2").removeClass("clicked");  
    }  
    });   
 slide("#sliding-navigation", 160, 182, 150, .8);  
  });  

jQuery.fn.slideFadeToggle = function(speed, easing, callback) {  
    return this.stop().animate({opacity: 'toggle', height: 'toggle', queue:false}, speed, easing, callback);  
};

幻灯片功能按我的意愿工作,但下拉菜单没有(如前所述中断),并且由于某种原因我的切换类也不起作用(但它在旧版本上)

4

1 回答 1

2

您使用参数的toggleheight
您还允许用户通过再次单击动画(.stop()部件)来中断动画。

如果在动画期间我打断它(假设他的身高为 50%),在下一次调用中,我的动画将从 50% 变为 0。我的下一个将从 0 变为 50%。

停止文档指出,您可以指定是否清除队列和/或转到动画的末尾。这些是你的情况。

jQuery.fn.slideFadeToggle = function(speed, easing, callback) {  
    return this.stop(true,true).animate({opacity: 'toggle', height: 'toggle', queue:false}, speed, easing, callback);  
};

true请注意添加到停靠点的两个值。这应该有效。

于 2009-11-09T17:26:28.300 回答