在单个元素上使用多个动画(连续)

Posted

技术标签:

【中文标题】在单个元素上使用多个动画(连续)【英文标题】:Using multiple animations (in a row) on a single element 【发布时间】:2012-11-11 19:43:32 【问题描述】:

我试过这个:

$('.element').animate(marginLeft: '-=1', 1).animate(marginTop: '+=1', 1).animate(marginLeft: '+=1', 500);

这样做的想法是,我在现实中使用上边距为幻灯片制作动画,但我不希望用户看到它是从左到右制作动画的。在我的情况下,我不能只是从左向右滑动,否则会很容易。

上面的代码没有得到我想要的结果,它只是滞后了一段时间,很快就出现了。

【问题讨论】:

可能 > [此链接将帮助您检查此问题的答案](***.com/questions/8976754/…) 这是因为 true false property 【参考方案1】:

我发现了几种不同的方法来实现这种程序动画。 正如 Dio 所说,一种有效的方法是在回调“完成”函数中启动动画。 但更有效的方法是使用队列。默认队列是“fx”,但您可以创建自定义队列。 I used this to help me with queues.

但如果你不喜欢队列并且想要重复,我使用 setInterval 函数做了类似的事情。

See my beta example here.(仍未发布)。请参阅下面的代码示例:

<script>
            $(document).ready(function()
        sliderAnimation();                     
    );
    sliderAnimation()
        var timer = setInterval(function()
            slide();,500);
    
slide()
    var position $('.element').pos();
    var direcLeft = '-=';
    var direcRight = '+=';
    if(position.left => 499)
        var move = direcLeft + '500';
    
    else 
        var move = direcRight + '500';  
    
    $('.element').animate(marginLeft : move,500)

</script>

我没有测试过这段代码,但它应该从右向左移动并重复,因为距离、间隔和动画间隔具有相同的变量。

【讨论】:

以上是关于在单个元素上使用多个动画(连续)的主要内容,如果未能解决你的问题,请参考以下文章

Jquery:如何同时制作连续和同时的动画

java Helper Class允许在同一视图中使用Glide连续加载多个图像,并在它们之间设置动画。

将多个内存块呈现为单个连续块的容器

vue+ webpack中的animate.css实现的执行多个连续的动画

使用jQuery连续淡入/淡出多个图像

在x轴上创建连续uiimage动画