簡體   English   中英

在Android瀏覽器上檢測滾動事件

[英]Detect scroll event on Android browser

我正在嘗試在Android瀏覽器中檢測滾動事件(我的特定版本是2.1,但是你希望它也適用於舊版本)。 這似乎不可能!

我第一次嘗試這個:

document.addEventListener('scroll', function(){ alert('test'); }, false);

但沒有觸發任何內容(頁面加載時除外)。

我想:好吧,讓我們瘋狂並通過以下方式模仿:1。檢測touchend 2.輪詢window.pageYOffset以便我們知道窗口何時停止滾動3.在滾動時手動觸發我想要的用戶功能。

不幸的是,touchend事件看起來也不會被觸發......事實上,當我們不滾動並只點擊屏幕(touchstart + touchend)時,它就可以工作了。 一旦我們在中間滾動頁面(touchstart + touchmove + touchend),它就會破壞所有內容。

現在我最基本的例子只包含這個:

document.addEventListener('touchend', function(){ alert('test'); }, false);

但是當我們用手指滾動並釋放觸摸時,警報不會顯示出來......

有沒有人有建議?

謝謝。

您可能想要抓取JQuery Mobile的源代碼,它支持Android瀏覽器並具有滾動事件偵聽器。

或者至少他們說它在文檔中做了。 :p

這是源頭

$.event.special.scrollstart = {
    enabled: true,

        setup: function() {
            var thisObject = this,
                $this = $( thisObject ),
                    scrolling,
                    timer;

            function trigger( event, state ) {
                scrolling = state;
                var originalType = event.type;
                event.type = scrolling ? "scrollstart" : "scrollstop";
                $.event.handle.call( thisObject, event );
                event.type = originalType;
            }

            // iPhone triggers scroll after a small delay; use touchmove instead
            $this.bind( scrollEvent, function( event ) {
                if ( !$.event.special.scrollstart.enabled ) {
                    return;
                }

                if ( !scrolling ) {
                    trigger( event, true );
                }

                clearTimeout( timer );
                timer = setTimeout(function() {
                    trigger( event, false );
                }, 50 );
            });
        }
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM