当您返回页面时,iOS浏览器会丢失窗口滚动事件

时间:2012-01-15 00:44:08

标签: javascript jquery-mobile prototypejs mobile-safari

使用Prototype Javascript框架,您可以编写以下代码来监听窗口滚动事件。

document.observe(
   'dom:loaded',
    function() {
        Event.observe(
            window,
            'scroll',
            function(event) {
                console.info(event);
            }
        );
    }
);

在iOS的Safari浏览器中,当您离开页面并回击时,不会再触发滚动处理程序。 Android的浏览器没有这个问题。有人提交了solution for jQuery,但我使用了Prototype。你如何确保你总是用Prototype监听滚动事件?

1 个答案:

答案 0 :(得分:0)

不确定Prototype中的细节是什么,但是对于传统滚动事件的移动浏览器支持它不存在。当滚动被确定结束时,你会得到一个滚动事件,我发现它很尴尬。如果您深入了解jQueryMobile源代码,您将看到它们如何处理它。例如固定位置工具栏。每当触发启动事件时,它们都会隐藏它们。他们这样做是因为他们没有具体的方法来确定应用程序是否正在滚动。并且由于在滚动视图时没有触发事件,因此他们不知道如何重新定位固定工具栏。一旦滚动结束事件被触发或touchend / touchstop / touchcancel事件触发,它们就会在正确的位置重新显示工具栏。