Caso di utilizzo: - Se l'utente sta scorrendo un div interno, non deve scorrere il div esterno una volta raggiunto il segmento div interno.Impossibile interrompere lo scorrimento del div esterno quando la fine del div interno ha raggiunto
Il seguente codice funziona perfettamente se il div interno ha già raggiunto la fine. l'evento touchstart/touchmove si attiva dopo che il div interno ha raggiunto la fine.
Ma nel caso in cui non alzi il tocco e continui a scorrere e se la fine del div interno ha raggiunto in questo processo, inizia a scorrere il div esterno.
$('body').find('.scrollableDiv').on(
{
'touchstart' : function(e) {
touchStartEvent = e;
},
'touchmove' : function(e) {
e.stopImmediatePropagation();
$this = $(this);
if ((e.originalEvent.touches[0].pageY > touchStartEvent.originalEvent.touches[0].pageY && this.scrollTop == 0) ||
(e.originalEvent.touches[0].pageY < touchStartEvent.originalEvent.touches[0].pageY && this.scrollTop + this.offsetHeight >= this.scrollHeight)){
e.preventDefault();
}
},
});
Come si interrompe lo scorrimento non appena viene raggiunta la fine del div interno? Sto cercando di raggiungere questo obiettivo su un browser su dispositivo Android. Qualcuno può aiutarmi in questo senso?
NOTA: l'utente dovrebbe essere in grado di scorrere il div esterno.
Grazie in anticipo.
Questa mi sembra una cattiva idea. Stai provando a scrivere codice che appartiene al browser web stesso, al fine di modificare l'interfaccia utente del browser mentre sul tuo sito in un modo che è incoerente con il modo in cui funziona su altri siti, disabilitando una funzione che l'utente potrebbe desiderare . –
Mi dispiace, se non ho chiarito il mio punto.In realtà sto cercando di dare una funzionalità in cui l'utente può scorrere entrambi i div in modo indipendente e lo scorrimento di un div interno non dovrebbe mai scorrere il div esterno. Considera una situazione in cui l'utente ha effettuato uno scorrimento veloce nel div interno che avrebbe provocato lo scorrimento della pagina non appena il div interno ha raggiunto la fine e quindi l'utente deve scorrere di nuovo la pagina verso l'alto per portare il div interno nel visibile vista. Non è una brutta UX? – Sashwat
Mozilla sembra essere d'accordo con te, dato che Firefox non lo fa su nessuna piattaforma, né sul desktop (con la ruota) né sul cellulare (con il dito). Apple sembra non essere d'accordo con te. Penso che probabilmente è dove la decisione appartiene, e il tentativo di farlo funzionare in modo diverso su diversi siti è di per sé una cattiva UX. Lo scorrimento –