首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JavaScript滚动事件在iPhone上不触发iOS7

JavaScript滚动事件在iPhone上不触发iOS7
EN

Stack Overflow用户
提问于 2013-12-04 16:06:31
回答 1查看 2.3K关注 0票数 2

我对图像使用了一种延迟加载技术。每当新图像出现在viewport中时,都会设置src属性,以便可以加载图像。这种技术已经使用了多年,直到iOS7问世。

有规律的页面浏览效果很好。但是当你关闭浏览器的时候,稍等一下,打开一些其他的应用程序,然后回来,它就不再工作了。有时,在制表符之间切换也会扼杀功能。

代码语言:javascript
运行
复制
$(window).bind('scroll resize', function () {
    checkImages();
});

有关完整演示: JSFiddle:http://jsfiddle.net/NZqGL/1/,请参阅http://jsfiddle.net/NZqGL/1/

我知道JavaScript的执行因为不活跃的应用程序和浏览器标签而被挂起。但对我来说,事情是新的。

这也是很难测试,因为行为是非常不可预测的。有时它需要2秒钟的不活动才能被打破,有时它只会继续工作。

在iOS 7.0.4上测试

更新2014年2月12日:--这是iOS 7.0中的一个已确认的错误,苹果已经确认这将在iOS 7.1中得到修复。

EN

回答 1

Stack Overflow用户

发布于 2013-12-13 15:44:54

在这里,使用touchend事件是一个可以接受的解决方法。

在释放手指和滚动事件之间存在延迟。当你在屏幕上快速移动手指时,你的手指松开后滚动会持续一段时间。

iOS还有另一个错误,它阻止在页面仍在滚动时执行JavaScript。因此,在实际滚动(而不是你松开手指的那一刻)之后,触边事件就会有效地触发。因此,滚动事件和触屏事件同时发生。

现在,我正在侦听这两个事件,并使用timer/setTimeout构造来防止代码执行两次。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20380187

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档