将insertAfter更改为.animate

时间:2014-02-06 15:56:00

标签: javascript jquery html css animation

我有jquery代码,可以在div中向上或向下滑动元素。这来自http://toddmotto.com/labs/superbox/

单击一个项目时,它会向下滑动较大的div。 我喜欢slideDown效果,但它会同时打开所有其他div

我的问题是:有没有办法动画css display:block?

转过来: $('.myClass').insertAfter(this).css('display', 'block');

进入: $('.myClass').animate({display: 'block'}, {duration: 700});

但是.animate({display: 'block'}, {duration: 700});它不起作用。

我也试过了:

$('.myClass').insertAfter(this).animate({display: 'block'}, {duration: 700});

但它没有打开大隐藏的div。

这是jquery的一部分

if ($(this).hasClass('currentbox')) {

    /**** If next inline item is clicked - gets class currentbox - slide toggle *****/
    $('.superbox-show-'+currentbox).slideToggle(700);

} else {

    /**** Initial-First click, If click is first time or box is hidden*****/

    /**** I like the slideDown effect but it opens all other hidden divs at same time *****/
    //$('.superbox-show-'+currentbox).slideDown(700);

    /**** I have to use this which does just opens the large div with no effect *****/

    $('.superbox-show-'+currentbox).insertAfter(this).css('display', 'block');

    /**** Hide all other divs *****/
    $('.superbox-show-'+currentbox).nextAll('.superbox-show').css('display', 'none');
    $('.superbox-show-'+currentbox).prevAll('.superbox-show').css('display', 'none');

}

1 个答案:

答案 0 :(得分:1)

  

但.animate({display:'block'},{duration:700});它不起作用。

尝试

$('.myclass').show(700);

如果你只使用没有任何数字的.show()或中间的'慢'或'快',它将立即显示没有动画。但是如果你使用一个数字,比如700,即700毫秒,它将执行一种显示元素的动画。