jquery animate延迟

时间:2010-11-02 04:29:39

标签: jquery html css jquery-animate

http://jsfiddle.net/pahnin/rdgbq/16/看看这个小提琴。 在这个小提琴中,animate函数运行得很晚,看起来很奇怪也是第一次点击徽标时animate不起作用

请提出任何建议。 。

1 个答案:

答案 0 :(得分:0)

好的,我想我找到了为什么你的代码运行缓慢。每次单击徽标div时,都会挂起一个新的.click()事件处理程序。

尝试更改缩进,以使$('.items').click(function() {超出$('#logo').click(function() {块。

http://jsfiddle.net/rdgbq/17/

所以你的代码变成了(只是代码的一部分):

$('#logo').click(function() {
    a = 1;
    d = -2;
    $('#container div').each(function() {
        $('#sidebar').hide().animate({
            top: '80%'
        }).removeClass('side');
        if (d > 3.5) {
            d = -2;
        }
        c = d * 10 + "%";
        if ((a - 1) % 3 == 0) {
            b = a * 10 + "%";
        }
        $(this).animate({
            top: b,
            left: c
        });
        a++;
        d += 2;
        $(this).show();
        $(this).corner();
    });
    d = -2;
});
$('.items').click(function() {
    var h = $(this).html();
    $('#sidebar').show().html(h).animate({
        top: '10%'
    }).corner("left").addClass('side');
    $('#container div').each(function() {
        if (d > 3.5) {
            d = -2;
        }
        c = -d * 10 + "%";
        $(this).animate({
            top: '100%',
            left: c
        });
        d += 2;
        $(this).show();
    });
});

您可以进行更多优化,但这应该会有所帮助!