Ho notato che Discourse è riuscito in qualche modo a calcolare la posizione superiore della tastiera virtuale su iOS.
Questo è importante se si desidera posizionare qualcosa esattamente sopra la tastiera virtuale, come questo campo di input in cui sto scrivendo in questo momento.
Su Android questo non è un problema nei browser per dispositivi mobili, perché gli elementi con position: fixed vengono automaticamente spinti fino in alto, appena sopra la tastiera visiva, quando questa diventa visibile.
Ho provato lo stesso campo di input su un dispositivo con iOS 12.1 e apparentemente Discourse è riuscito a replicare il comportamento desiderato anche su versioni di Safari per iOS non supportate.
Qualcuno potrebbe indicarmi la strada giusta per ottenere lo stesso risultato? Lo apprezzerei moltissimo
Posso immaginare che sia una montagna di workaround. Mi sto strappando i capelli su questa da giorni, quindi sono pronto e disposto a scalarla con piacere ..
Ho già dovuto inserire un workaround davvero sporco per impedire a Safari mobile di alzare la barra fissa in alto quando si mette a fuoco un campo di input. In realtà, penso che non sarà molto peggio di quello che ho dovuto fare lì per far funzionare quella cosa
Il terribile hack consisteva nel rimuovere gli elementi dalla loro posizione fissa quando l’area di testo acquisiva il focus, nascondendo tutto nella pagina, per poi ripristinarli quando l’area di testo perdeva il focus.
Era molto bizzarro. Sono felice che @pmusaraj abbia introdotto un’implementazione molto più robusta.
Come notato in quel file, tuttavia, rimuoveremo presto gli hack per iOS 12. iOS 14 è uscito quest’anno e solo circa il 5% dei dispositivi è ancora su iOS 12.
Ho dato un’occhiata veloce al tuo workaround: a quanto pare hai scelto la strada di hardcodare le dimensioni di tutte le possibili dimensioni della tastiera?
Tuttavia, quando disattivano il suggerimento automatico, la tastiera cambia dimensione: come gestisce questa situazione?
Non sapevo che il gruppo di utenti su iOS 12 fosse così ridotto. Sei sicuro che solo il 5% rimanga su iOS 12 o versioni precedenti? In tal caso, potrebbe essere una perdita di tempo concentrarsi su quel particolare problema.
La soluzione alternativa funziona perfettamente quando il suggerimento automatico è abilitato… quando il suggerimento automatico viene disabilitato, rimane uno spazio… ma come hai già affermato, il numero di utenti ancora bloccati su iOS 12 è molto basso… Ancora più basso per gli utenti bloccati su iOS 12 con il suggerimento automatico disabilitato.
Quindi la tua correzione è la migliore che potessi immaginare. Grazie per averla condivisa!