- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 http://spritely.net/ 中的库制作动画。我通过使用 .onscroll() 触发它 - 但我努力阻止滚动事件频繁触发,并且它使动画速度加快太多,因为 .onscroll() 每秒调用它多次启动
通过根据当前时间设置变量,我可以在第一次滚动时停止频繁触发滚动事件
我无法保持后续滚动事件的延迟,每次滚动后变量的效果越来越差
如何保持滚动只触发动画在每个滚动事件启动一次,以便无论我通过启动和停止滚动多少次启动和停止动画,它都保持恒定的速度?这是演示 http://jsfiddle.net/fGmbe/109/
这是代码
var t, l = (new Date()).getTime(), scrolling = false;
$(window).scroll(function(){
var now = (new Date()).getTime();
if(now - l > 800 && !scrolling ){
$('#bird').sprite({fps:6, no_of_frames: 16, rewind: true });
l = now;
}
clearTimeout(t);
t = setTimeout(function(){
if (!scrolling)
$('#bird').spStop()
}, 300);
});
var a, b = (new Date()).getTime(), scrolling = false;
$(window).scroll(function() {
var nw = (new Date()).getTime();
if(nw - b > 800 && !scrolling ){
$('#bird').spStart({fps:8, no_of_frames: 16, rewind: true })
l = nw;
}
});
var c, d = (new Date()).getTime(), scrolling = false;
$(window).scroll(function() {
var nx = (new Date()).getTime();
if(nx - d > 800 && !scrolling ){
$('#bird').spStart({fps:8, no_of_frames: 16, rewind: true })
l = nx;
}
});
最佳答案
要为某个事件仅触发一次处理程序,请去抖动
它!
http://benalman.com/projects/jquery-throttle-debounce-plugin/
如果事件在设定的时间内再次触发,则处理程序将被延迟。
编辑:
如何实现您想要的功能的快速示例。请注意我传递给 $.debounce
的第二个参数,它是一个 bool 值,定义事件处理程序是否应在事件开始时或结束时运行。
$(function(){
$(window).scroll($.debounce(500, true, startSomething));
$(window).scroll($.debounce(500, false, stopSomething));
function startSomething(){
// start animating here
}
function stopSomething(){
// stop animating here
}
});
关于javascript - jquery - 如何执行递归函数来重置/维护滚动事件的时间延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19408260/
我在使用以下代码时遇到问题。 //Send Creation email ListServDAO.sendCreateEmail(orgId, full, request.getSession().g
我想知道如何在一段时间后调用函数。我试过 time.sleep() 但这会停止整个脚本。我希望脚本继续运行,但在 ???secs 后调用一个函数并同时运行另一个脚本 最佳答案 看看threading.
我有一个在 .NET 4.0 中使用的自定义控件(继承自 TextBox)。 我需要做的是在用户完成输入后执行一些代码,例如他停止打字后一秒钟。 为了提高效率,我不能在每次 Text 更改时都执行此代
我目前正在开发一个应用程序,我想实现一个时间延迟。我不想使用 System.Threading.Thread.Sleep(x);当我读到这篇文章时,线程停止了(UI 卡住) 我目前写的代码是: pub
我需要一些关于我调用 onKeyUp 的 JavaScript 函数的帮助,它是一个 Ajax 函数,但每次我写任何字符时它都会调用该函数并且它会降低页面性能并且它每次都会检查,它是一个用户检查数据库
我想在 PyDev (Eclipse) python 2.75 中创建一个图形窗口。 我做了一些事情,但我想做一个“入口”“眨眼”。它测试用户输入。如果它是一个整数,它应该闪烁绿色一秒钟,然后变成白色
再次嗨,网络大师:)现在,我有一个新的愚蠢问题,我请求原谅。我到处阅读有关此解决方案的信息,但没有找到适合我的解决方案。 我有: 我要问的是如何使其不在按下按钮后进行检查,而是在键盘不活动 1000
我通过了几种导致时间延迟的方法,例如 pings 和 dirs。虽然它们都不是真正精确的,但有没有适当的方法来导致时间延迟? 我听说了一些东西,尽管它们不适用于所有计算机,不适用于我的 Windows
这个问题在这里已经有了答案: Simple C app using 50% cpu (6 个答案) 关闭 8 年前。 我尝试使用 ncurses 库和 C 编写一个 CUI Snake 游戏。一切正
我写了一个带有时间延迟的源代码。在 unix 中我使用了 #include 头文件和 usleep功能。 在 Windows 上这相当于什么? 在windows上写同样的代码应该用什么库和函数 最佳答
我正在尝试让我的 JButton 在我正在创建的游戏中闪烁红色。该网站上的所有解决方案都建议使用线程并将其置于 sleep 状态或使用计时器,但是,暂停缓解似乎是在颜色更改之后发生的 这是我的代码:
我正在使用 Javascript 和 HTML5 CANvas 制作动画。如何在 for 循环中实现延迟(非阻塞)?我想确保在延迟结束之前不会绘制第二条线。 for (i=1;i
我正在尝试让我的 JButton 为我正在创建的游戏闪烁红色。该网站上的所有解决方案都建议使用线程并将其置于 sleep 状态或使用计时器,但是,暂停似乎是在颜色变化之后出现的 这是我的代码: Col
我正在使用 Node.js(v0.12.4) 和 Socket.io(1.3.2) 开发实时交易应用程序。在那方面,当从 Node.js 向 GUI(Socket.Io) 发出响应时,我面临将近 (1
我试图弄清楚如何在 Excel VBA 中使用时间延迟。 这是我想做的事情: 我在宏中有一个按钮,当我单击它时,它会发送第一封电子邮件。然后 1 小时后,我想自动发送第二封电子邮件,而无需单击另一个按
我是一名优秀的程序员,十分优秀!