JavaScript 动画在 iOS Safari Webkit 浏览器中停止,当手指在屏幕上而不抬起时

javascript animation halted in ios safari webkit browser when finger is on the screen without lifting

本文关键字:屏幕 手指 Safari iOS 动画 Webkit 浏览器 JavaScript      更新时间:2023-09-26

我有一个网络视图,正在应用程序中显示页面上有一个动画,一个数字计时器,我在其中显示每个数字的图像,例如 00:39、29:39 等

它正在动画使用页面中的javascript中的setInterval问题是当我把手指放在屏幕上时,即不抬起手指的触摸浏览器停止,这意味着动画不再动画,它停止在我的手指触摸屏幕时的位置,并且在我抬起手指后它将继续动画

我该如何解决这个问题?我听说我可以使用阻止默认方法,但这不会忽略页面上的所有事件吗?

基本上除了我网页中的计时器之外,我还有一些用户可以与之交互的东西,所以它正在寻找点击事件等。

所以我肯定也想保留它请帮忙

这发生在iOS设备上...如果我在桌面浏览器中运行,一切似乎都很好。不停止被观察

只适合以后遇到这个问题的任何人:滚动时,动画始终在 Web 浏览器中停止,这是您的 Web 视图通过手指触摸所期望的。这也将发生在桌面浏览器上

如果您按任意位置或仅在计数器上按下,它会停止吗?尝试防止点击计数器元素。例如。

$('#counter-container').click(function()
{
  e.preventDefault();
  return false;
});

编辑:显然这不是一个罕见的问题。当iPhone需要更多的CPU/内存资源时,它将停止javascript的执行。研究使用 setInterval(以给定的时间间隔执行 javascript,直到调用 clearInterval())来检测动画是否未成功完成。
相关问题:
用户交互有时会搞砸UIWebView
中的jQuery ajax请求AJAX 不断寻找服务器更新?爪哇语
https://discussions.apple.com/thread/2723866?start=0&tstart=0

找到了问题所在。它与 Ajax 请求或 CPU 无关这是因为引入了微小的滚动。 显然,如果您正在滚动或要滚动,所有目标都将停止。