- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在尝试将变量传递到我的步骤函数以处理一些最终的跨浏览器后备动画时遇到了麻烦。我在这里构建了一个通用动画方法:
Animator:function(obj,aniArgs,duration,aniEasArgs,delay,stepFunction,completeFunction){
obj.stop(true,true).animate(aniArgs,
{duration:parseInt(duration,10),queue:false,specialEasing:aniEasArgs,
step:function(now,fx){
if($.isFunction(stepFunction)){
stepFunction.apply(this,arguments);
};
},complete:function(){
if($.isFunction(completeFunction)){
completeFunction.apply(this,arguments); };}});
};
}
这可以工作并为所需的一切提供动画效果。不过,我正在尝试调用 Animator 函数并使用步骤函数来对属性进行动画处理。电话如下:
var angle=0,
stepFunction=function(now,fx,angle){
angle+=1;
$(this).css({"-ms-transform":"rotate("+angle+"deg)"});
};
Animator(obj,aniArgs,speed,easing,0,stepFunction,null);
传入的所有其他参数都很好并且检查良好。 obj 是正在动画的 obj,aniArgs 是包含要动画的所有 CSS 名称/值的对象文字,speed 是速度,easing 是包含所有 CSS 名称/缓动值的对象文字,stepFunction 是上面声明的函数变量,并且 null表明没有完整的函数要执行。
一切都运行良好,但我遇到了步骤函数的变量问题。我似乎无法获得实际阶跃函数内部的 Angular 值。在该步骤中,我可以记录 now 和 fx,它们运行良好,但是我无法传递初始值为 0 的 Angular ,以便我可以增加它。
有什么想法我哪里出错了吗?谢谢!
最佳答案
。 。正如 @Beetroot-Beetroot 在我完成评论前几秒所说的那样,每次调用 progress 函数
之间的时间不一定是恒定的,并且向 angle
变量添加一个恒定值会让你的动画看起来不对。
。 。 step
事件,按照 jQuery documentation ,每个属性的每个刻度可能被调用多次,并使用一组在这种情况下并不真正有用的参数。我们一直在评论 progress
回调,但使用了错误的名称。我不确定 jQuery 是否改变了它的实现(似乎在 v1.8 上添加了 progress
函数),但出于某种原因,我脑子里有这个“步骤”名称。我觉得不可思议GreenSock's tweening library也使用“步骤”名称。无论如何,在 jQuery 中,step
和 progress
的签名如下:
步骤:函数(现在编号,Tween 补间):第一个参数是要进行动画处理的一个属性的值,第二个参数是 jQuery 的补间对象(包括 prop
属性,以便您知道 now
值引用了哪个属性)。
进度:函数(Promise动画、Number进度、Number剩余Ms):第一个参数是a jQuery promise object代表动画,第二个参数是0到1之间的数字,代表动画进度的百分比,第三个参数是动画结束之前的毫秒数。
。 。出于您的目的,progress
事件显然正是您所需要的。请记住将传递给 Animator
函数中的 jQuery.animate
的对象中的 step
属性更改为 progress
。 .
。 。您需要使用 progress
值(因为它是 0 到 1 之间的值,表示动画进度的百分比)作为计算 progress 函数
内当前 Angular 因子每次调用时:
progressFunction = function(animation, progress, lastingms) {
var startAngle = 0, endAngle = 180;
var angleRange = endAngle -startAngle;
var curAngle = startAngle +(angleRange *progress);
$(this).css({"-ms-transform":"rotate("+ curAngle +"deg)"});
};
。 。每当您需要更多值进行动画处理时,请使用相同的逻辑:
progressFunction = function(animation, progress, lastingms) {
var startA = 0, endA = 180, rangeA = (endA -startA);
var startX = 254, endX = 894, rangeX = (endX -startX);
var curA = startA + rangeA *progress;
var curX = startX + rangeX *progress;
$(this).css({
"-ms-transform":"rotate("+ curAngle +"deg)",
'left': curX +'px'
});
};
。 。如果您打算在代码的许多部分将它用作库,那么尝试使其更加自动化是有意义的,这样您就不需要一直编写相同的逻辑。
关于javascript - 将变量传递给 .animate Step 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16289742/
在我用 OpenCascade 生成的 STEP 文件中,我可以看到: #58 = VERTEX_POINT('',#59); #59 = CARTESIAN_POINT('',(-0.5,-0.5,
这个问题在这里已经有了答案: How to use Firebug's debugger functions? (1 个回答) 关闭 8 年前。 我是 FireBug 调试器的新手,谁能告诉我什么是
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,因为
我想知道 Eclipse IDE 中是否存在任何功能,可以在执行 selenium 脚本 时“从步骤进行调试” “单步执行”、“单步执行”。 “QTP” 和大多数专有功能自动化工具中都提供此功能。我假
我正在寻找 .stp/.step 文件的某种规范、文档、解释等。 更多的是关于每行包含哪些信息而不是一般信息。 我似乎无法自己弄清楚每个值的含义。 有谁知道一些关于 STEP 文件的好读物? 我已经搜
我写了下面的代码: Mockup TOPdesk
我正在尝试研究 java String 类中的方法如何工作,因此我创建了一些调用该 String 类方法的自定义代码。 如您所见,我在自己的代码中设置了一个断点,并且在 java String 类源代
我有某些功能,需要我进行一个 api 调用来检索第二个 api 调用中使用的某个 id,逻辑上它看起来像这样: componentWillMount () { this.props.functio
在本地使用 AppEngine(即使用 dev_appserver.py)时,是否可以进行逐步调试?使用 logging.info() 或类似的函数来显示代码中所有变量的值并确定错误的位置是一种过时的
我正在使用 JQuery Steps,它非常好。但事实证明有些事情很棘手。 假设我在第 2 步。根据我在表单中选择的内容,我可能想在单击“下一步”时直接跳到第 4 步,并且进一步禁用第 3 步 anc
我已经包含了 jquery-steps 插件。 如何更改按钮文本? 现在它说“完成”我想把它改成“去” 谢谢 最佳答案 查看以下内容 link .您可以在初始化时更改所有标签。 var setting
在(现已弃用的) Angular 场景测试运行器中,有一个选项可以创建一个 runner.html 页面,该页面将在 iFrame 中运行测试,同时在主页中逐步报告进度。 有没有办法获得类似的 Pro
我有使用标签 的 primefaces 步骤像下面这样: 结果是这样的: 我可以点击步骤 1,但不能点击步骤 3 和 4。如何为所有步骤启用点击? 最佳答案 哇,
给定一个使用分区的 Spring Batch 作业,是否可以有多个分区步骤? 例如: 在上面的示例中,是否可以将另一个分区
假设您要从数据库中获取一条记录,该记录返回大量数据并且需要多次连接。 所以我的问题是,使用单个查询来检查数据是否存在并在存在时获取结果是否更好?或者做一个更简单的查询,检查数据是否存在然后id记录是否
我如何创建一个具有整数输入类型而不是字符串的任务,例如我想启动一个状态机: "SomeStage": { "Comment": "Getting busy
我还没有看到有人问过这个问题——尽管我确实阅读了大约 100 个关于类似主题的 jQuery 步骤——似乎没有一个能解决我的问题。 我正在使用 jQuery-steps 并希望在第一步完成后添加一个“
我想知道是否可以在 Laravel 5.3 中逐个迁移。 我无法使 --step 选项正常工作,文档仅提及此选项与 rollback 或 refresh 一起使用命令。 // this works p
我已按照 AWS 文档中的步骤在本地设置和运行 AWS Step Functions:https://docs.aws.amazon.com/step-functions/latest/dg/sfn-
我已按照 AWS 文档中的步骤在本地设置和运行 AWS Step Functions:https://docs.aws.amazon.com/step-functions/latest/dg/sfn-
我是一名优秀的程序员,十分优秀!