0

我正在使用 jquery animate 函数在我的内容 div 中移动一个块。基本结构如下:

<div class="content">
  <div>block 1</div>
  <div>block 2</div>
  <div>block 3</div>
</div>

我的js:

//main menu clicked:    
    $('#nav').children().click(function(e){
        e.preventDefault();
        var current = $('.selected').index();
        var clicked = $(this).index();
        if(current != clicked){

        if (current < clicked) {
            clickedLeft = 1400
            currentLeft = -1400
            $('#content-'+clicked).css('left', clickedLeft);
        } else {
                clickedLeft = -1400
                currentLeft = 1400
                $('#content-'+clicked).css('left', clickedLeft);
            }

        $('#content-'+current).animate({left: currentLeft}, 1500, 'easeInOutSine', function(){ $('#content-'+current).hide(); });
        $('#content-'+clicked).show().animate({left: 0}, 1500, 'easeInOutSine');


        }
    });

当我点击特定的菜单链接时,相应的 div 将移动到中心,而位于中心的 div 将移动到对面。一切正常,但我的块有不同的元素,如 img p li 等,所以我想以不同的速度移动这些元素。可能吗?还是我应该分别为块的每个元素设置动画?我不能为每个元素提供动画,因为它们是从 db 中检索的,所以并不总是显示相同的元素。

活生生的例子:dida.uz

4

1 回答 1

0

您应该为 div 分配不同的动画,但之前必须在有限的时间内计算所需的动画数量,这将为您提供正确的速度,然后所有动画将同时结束,从而获得最佳体验。

当然,示例代码将不胜感激。

于 2013-01-08T20:17:39.107 回答