.slideUp和.slideDown突然停止了顺利工作

时间:2012-10-23 19:26:18

标签: jquery html

我目前负责这个插图网站的图片库直到最近一直工作正常。它有一个平滑的slideUp slideDown动画,每个人都很高兴。然后突然间,这种平滑性停止了工作,现在这些图像正在整个地方徘徊。也许这最近与JQuery更新有关,或者在我的代码中可能有些问题?

这是图像库的JQuery:

(function() {
    var nav = $('.nav div');
    var images = $('.images li');
    var imagebutton = $('.images li:not(:last) > img');
    $('.images li:first-child').slideDown(500);
    nav.click(function() {
        var imageno = nav.index(this);
        images.slideUp(500);
        images.eq(imageno).slideDown(500);
        return false;
    });
    imagebutton.click(function() {
        $(this).parent(images).slideUp(500).next().slideDown(500);
        return false;
    });
})();​

你可以在这里看到实例:

http://www.gloryillustration.com/tests/nodland.html

2 个答案:

答案 0 :(得分:3)

因为slideUpslideDown方法是异步的,所以只要你调用一个,就会执行下一行代码......也就是说,一旦你向上滑动,你现在才会滑落动画甚至完成。但是,每个方法都有一个回调,一旦动画完成就会调用它。尝试类似:

$('#el').slideUp(500, function() { $('#el2').slideDown(500); });

在500毫秒动画后,将调用slideUp中的第二个参数。

答案 1 :(得分:0)

如果您反复选择相同的图像,我会延迟并修复跳转。

if ($(this).parent() != $(this).next().parent())
{
    $(this).parent(images).slideUp(500).next().delay(500).slideDown(500);
}