2016-02-27 7 views
7

Uso il plugin jQuery Selectric per personalizzare la selezione.jQuery Bug Selectric su iPad

$('select').selectric({ 
    disableOnMobile: false 
}); 

se apro selezionare il dispositivo iPad mia colonna di sinistra spostarsi in alto

.left-column { 
    position: fixed; 
    left: 0; 
    top: 0; 
    width: 200px; 
    height: 100vh; 
    background: #F00; 
    z-index: 100; 
} 

prega, aiutare con esso. Demo qui: http://output.jsbin.com/seleyi

enter image description here

UPD: test a browserstack iOS < 7 - non è un problema, iOS 8.3 - avere qualche problema, iOS 9.1 ha questo bug

+1

'100vh' →' 100% ': http://output.jsbin.com/hiyewotiqo – blex

+0

@blex è utile in questo esempio, ma non sul mio sito, faccio una nuova demo, qui potete prenderlo se selezionate posto nella parte inferiore della pagina http://jsbin.com/seleyi/edit?output http://prntscr.com/a8k00x – sglazkov

+0

@blex aggiungo demo e immagine in questione – sglazkov

risposta

1

E 'iOS bug 9, comprendono in iOS 8, ma in versione 9 include in parte.

Bug con input, con attributo readonly="readonly". Selectric uso nascondere ingresso:

enter image description here

Cosa succede:

  1. Se click sul metodo selectric-wrapper inizio _open.
  2. Metodo _open impostare il fuoco su nascondi input.selectric-input. Crea plug-in seletrico e non so perché. Può essere, più semplice aggiungere ascoltatori per le battiture su un elemento nascosto. E gestisci tali eventi quando un oggetto è focalizzato. Perché input? Se si utilizza un altro elemento, premendo i tasti freccia, scorreremo anche il documento stesso. Perché, usa l'input, anche se potrei sbagliarmi. Forse l'input migliore per gli e-reader, ad esempio, lo ha usato per migliorare l'accessibilità.

E quando l'attenzione arriva agli input, nonostante sia di sola lettura, iOS (penso di sì) tenta di allocare spazio per la tastiera. Posso consigliare una semplice soluzione:

$(".selectric-input[readonly]").on("focus", function(evt) { 
    this.blur(); 
}); 

Ie quando l'ingresso di messa a fuoco immediatamente liberarsi di lui, perché su iPad impossibile muoversi attraverso l'elenco utilizzando la tastiera, la funzionalità non dovrebbe essere compromessa.