在动画过程中重复执行代码
Execute code repeatedly during animation?
我在Java中看到过这样的东西,我想知道它在JavaScript/jQuery中是否有类似的东西。基本上,我有一个带有动画的函数和在其末尾运行的代码:
$('html,body').animate({ scrollTop: 0 }, 'slow', function(){
lastScrollTop = $(this).scrollTop();
});
但是,我希望在动画过程中更新此代码,例如:如果用户500px
,我希望lastScrollTop
变为 450,400,300,200,100,50,0
有没有办法在动画过程中保持我的变量更新?
您应该考虑使用step
或progress
animate
方法:
$('body').animate({ scrollTop: 0 }, {
duration: 'slow',
step: function(now, fx) {
lastScrollTop = now; //Get the current scroll amount.
},
complete: function() {
lastScrollTop = $(this).scrollTop();
}
});
-
now
:每一步被动画处理的属性的数值 -
fx
:对 jQuery.fx 原型对象的引用,该对象包含许多属性,例如 elem 表示动画元素,分别表示动画属性的第一个和最后一个值的 start 和 end,以及用于要进行动画处理的属性的 prop。
如果要在动画发生之前获取值,请使用步骤;如果要在动画发生后获取值,请使用进度。像这样:
$('html,body').animate(
{scrollTop: 0},
{
'slow',
step: function(currentTop){
console.log (currentTop)
}
},
function(){
lastScrollTop = $(this).scrollTop();
}
);
相关文章:
- 有没有一种方法可以通过只引用JavaScript来执行代码
- jQuery在类更改时执行代码
- 如果此代码运行,请执行代码
- Javascript等待ajax成功后再执行代码
- 如何在onclick事件执行代码时在ImageButton上设置加载gif
- php,如果我点击按钮程序重新加载页面,并且从不继续执行代码
- Javascript渲染.如何编写Javascript;t在函数调用结束之前继续执行代码
- 无法让 jQuery 以正确的顺序执行代码
- ReactJS:在带有 ajax 调用的 .map() 语句完成后执行代码
- 从一个文本框执行代码,并在另一个文本框中以 HTML 显示输出
- 自执行代码中的“this”
- 为什么Javascript不按顺序执行代码
- 如何在javascript中连续执行代码
- 加载所有图像后执行代码
- 按下多个按钮时执行代码
- 如何在检索到数据后使用drawCallback执行代码
- 等待promise解析后再执行代码
- jQuery没有为具有新id的新元素执行代码
- 如何在客户端Collection增长时立即反应性地执行代码
- 如何将变量表达式转换为可执行代码(而不是替换值)