多个jquery动画以相同的速度和不同的高度同时完成动画

Posted

技术标签:

【中文标题】多个jquery动画以相同的速度和不同的高度同时完成动画【英文标题】:Multiple jquery animate's with same speed and different height's complete the animation at the same time 【发布时间】:2012-02-04 05:42:35 【问题描述】:

所以,我有多个速度相同但高度不同的 jquery 动画,并且所有动画同时完成。

我想知道有没有办法不管距离多远都能保持原来的动画速度?

http://jsfiddle.net/lollero/CEksN/ - 这意味着这些当然会在不同的时间完成。

(我的问题不是它们如何同时完成,而是它们的速度如何变化)


FlabbyRabbit 的回答让我走上了正确的道路。这或多或少是我所追求的

http://jsfiddle.net/lollero/CEksN/12/

【问题讨论】:

可能重复:***.com/questions/3191358/jquery-animation-speed 【参考方案1】:

下面是我的做法:

//Calculate length of time per pixel
var spp = 500/20;
$('#lt').animate( height: '400' , spp*400, 'linear');
$('#mm').animate( height: '55' , spp*51, 'linear');
$('#ss').animate( height: '20' , spp*20, 'linear');

您更新的 jsfiddle:http://jsfiddle.net/CEksN/8/

【讨论】:

我后来意识到我可能没有考虑过这个问题的所有方面,尤其是在这个例子中,但你的回答让我得到了我想去的地方。这或多或少是我所追求的。 jsfiddle.net/lollero/CEksN/12 这可能更有用:jsfiddle.net/CEksN/13。持续时间是指显示最小元素的时间长度,但应该很容易将其更改为最高元素。 谢谢!这可能会派上用场。【参考方案2】:

这是一个修改版,我对高度和速度做了一个简单的改变,这样两者的比例就更明显了……

$('#lt').animate( height: '400' , 1600, "linear");
$('#mm').animate( height: '200' , 800, "linear");
$('#ss').animate( height: '100' , 400, "linear");

我还制作了线性动画,以便您可以看到它们以相同的速度制作动画。删除“线性”参数,它看起来就不那么均匀了。恐怕这只是宽松的本质。它看起来很可爱,但在同步你想要的东西时可能会导致数学问题。

希望这会有所帮助:)

【讨论】:

以上是关于多个jquery动画以相同的速度和不同的高度同时完成动画的主要内容,如果未能解决你的问题,请参考以下文章

JQuery:结合动画 CSS 和淡入淡出

为 Div 背景设置动画 - CSS 或 jQuery

JS动画之速度动画和透明度变化

删除和插入具有不同高度的单元格时,UITableView 动画故障

以不同的速度进行多个同时的 CSS3 变换过渡

jQuery动画效果(借鉴他人的)