javascript - salir - Detectar evento de desplazamiento en el navegador de Android
evento al salir de la pagina javascript (1)
Estoy intentando detectar el evento de desplazamiento en el navegador de Android (mi versión específica es 2.1, pero quiero que también funcione en versiones anteriores). ¡Esto parece imposible!
Primero intenté esto:
document.addEventListener(''scroll'', function(){ alert(''test''); }, false);
Pero no se activa nada (excepto cuando la carga de la página).
Pensé: bueno, vamos a estar locos y emularlo de la siguiente manera: 1. Detectando touchend 2. Sondeando window.pageYOffset para saber cuándo la ventana deja de desplazarse 3. Activa manualmente una función de usuario que deseo en scroll.
Desafortunadamente, el evento touchend tampoco parece activarse ... de hecho, cuando no nos desplazamos y tocamos la pantalla (touchstart + touchend), funciona. Tan pronto como desplazamos la página en el medio (touchstart + touchmove + touchend), rompe todo.
Ahora mi ejemplo más básico solo contiene esto:
document.addEventListener(''touchend'', function(){ alert(''test''); }, false);
Pero la alerta no aparece cuando nos desplazamos con el dedo y soltamos el toque ...
¿Alguien tiene una sugerencia?
Gracias.
Es posible que desee rastrear el origen de JQuery Mobile, es compatible con navegadores Android y tiene detectores de eventos de desplazamiento.
O al menos dicen que sí en los documentos. :pag
$.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 );
});
}
};