JQuery滑块,标签改变后的奇怪表现

JQuery slider, strange performance after tab change

本文关键字:滑块 标签 改变 JQuery      更新时间:2023-09-26

我用JQuery创建了一个滑动条,但是现在在Firefox和Chrome中更改选项卡后出现了奇怪的性能。

如果你改变选项卡并返回有更多的盒子打开或滑块变化快,没有任何逻辑…或者许多其他奇怪的事情。

所以我真的不知道firefox和chrome有什么问题:D

有人能帮助我或有人知道为什么会发生这种情况吗?

好了,伙计们,我找到了这个问题的答案:

在JQuery 1.6.2中,他们实现了新的"requestAnimationFrame"。但目前这并不能很好地工作,并产生"动画虫洞",就像我在这里的问题中描述的那样!

在JQuery 1.6.3中,他们删除了这个API,现在它又可以正常工作了;)

这是bug ticket: http://bugs.jquery.com/ticket/9381

亲切的问候拉斐尔

问题是不同的动画并不同步。你应该把后续的动画作为回调!JavaScript没有SLEEP之类的东西。一旦它得到一个函数的调用,它就会尝试执行它。但是当你离开窗口/选项卡时,浏览器会从非活动选项卡中拿走大部分处理能力,为新的当前选项卡提供更好的功能。尽管如此,仍然维护在非活动选项卡上调用的函数堆栈,并且一旦选项卡恢复处理能力,堆栈就会尽快清空。(这就是页面在几秒钟内恢复正常功能的原因)

问题来自于这样一个事实,即当您没有关注窗口时,图像的滚动动画不会发生。当你重新集中注意力时,它们都会出现。

在旋转调用中添加stop似乎有帮助。

$(".image_roll").stop(true, true).animate({
    left: -image_rollPosition
}, 1200, 'easeInOutQuart');

然而,我不是很熟悉所有的动画/停止功能的jQuery,所以可能有一些其他的东西要改变。(似乎我指出的变化是做一个小错误,当焦点回到窗口,但我认为它仍然比以前更好)。

示例见http://jsfiddle.net/fc7Xc/104/