首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不在每个步骤计算Jquery动画函数步骤参数

不在每个步骤计算Jquery动画函数步骤参数
EN

Stack Overflow用户
提问于 2014-02-19 14:36:35
回答 1查看 82关注 0票数 0

我想检查在Jquery动画函数的step函数中指定的一个条件。但是,由于某些原因,步长函数只执行了几次,似乎并不是动画的每一步都执行。我想在移动的每一步检查一个条件,这样如果满足条件,我就可以更改动画。

代码如下:

代码语言:javascript
复制
// orig position of #testball is 0px left and 0px top
$("#testball").animate({
            left:"500px",
            top :"500px"
            }, {
           speed: "slow",
           step: function(now, fx) {
            alert("hello");

                 if((testball.offsetLeft >= barline5.offsetLeft) && (testball.offsetLeft <= barline5.offsetLeft))
                 {                       
                     testball.style.backgroundColor = "yellow";
                 }
        }
      });

我希望在对象的每一个小的移动上都执行步长函数。但在这种情况下,当动画从0px到500px时,step函数只被调用4-5次(我以为它会在每个像素的动画上执行)。因此,条件没有得到正确的评估。

如果你知道为什么在每个小动作上都不执行步长函数,请分享。

EN

回答 1

Stack Overflow用户

发布于 2014-02-19 16:03:04

实际上,在整个动画过程中,您要动画的每个属性都会调用step。因此,如果您要设置n个属性的动画,则在每次补间移动过程中会调用步骤n次。

就我个人而言,我认为progress可能对你正在尝试做的事情更有意义?(我猜,在动画的每一步之后检查一个条件?)

这里有一个小提琴演示了这一点:

http://jsfiddle.net/YWAE5/1/

因为我们要对顶部和左侧进行动画处理(2属性),步骤应该比函数调用的进度多2x倍。添加额外的属性,这个数字将继续上升。

(可能会影响性能...)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21872903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档