2012-12-21 9 views
16

Lavorando su una pagina che viene visualizzata in Windows Phone 8, e ho notato un comportamento strano. Quando -ms-viewport viene specificato con larghezza o altezza, sembra che gli utenti non possano più utilizzare i comportamenti di scorrimento a sfioramento su un overflow: auto o -ms-touch-move: elemento pan-y.Scorrimento overflow div quando viene specificato -ms-viewport?

Chiunque riscontra questo comportamento o è a conoscenza di eventuali soluzioni alternative?

edit: Visita questo URL su un dispositivo WP8 per un Repro: http://fiddle.jshell.net/Vk7SR/3/show/light

+0

Ho esattamente lo stesso problema – krisdyson

+0

Ho appena chiesto la stessa domanda e sono stato abbattuto da un moderatore. Ovviamente non gli piace Microsoft – krisdyson

+0

Hai un esempio del bug ovunque? –

risposta

19

Impostazione del @-ms-viewport { width: auto } potrebbe non essere accettabile per un certo numero di applicazioni che aspirano a presentare un reattivo UI su dispositivi Windows Phone. Un'alternativa di lavoro che consente di impostare qualunque larghezza finestra che si desidera è quello di impostare la seguente regola CSS:

body, html { 
    -ms-overflow-style: none !important; 
} 

Ho copiato il Repro originale e fissarlo con questa regola a https://gist.github.com/tjanczuk/7419485. Puoi anche navigare direttamente alla pagina HTML con la correzione da un dispositivo Windows Phone a http://htmlpreview.github.io/?https://gist.github.com/tjanczuk/7419485/raw/9a13fc9ad43f2103d8b9e23e25c7b0672a13385f/gistfile1.html

+0

Questo mi ha salvato la giornata! Questo dovrebbe essere generoso come è la risposta corretta! Entrambe le impostazioni '@ -ms-viewport' e' -ms-overflow-style' sono la chiave per farlo funzionare correttamente! – Adaptabi

+0

Grazie mille! Sono rimasto confuso per ore a cosa ha rotto il mio div di scorrimento quando si utilizza @ -ms-viewport {width: device-width; height: device-height;} e la tua correzione ha fatto il trucco. Ma su WP8.1 hanno rotto le dimensioni di 'device-'causando brutti spazi vuoti e aree ridondanti ... ma questa è un'altra storia. – JustAMartin

+0

Aggiunta: -ms-overflow-style: nessuno al mio elemento div già ha fatto il trucco. Grazie mille, abbiamo risolto un problema che abbiamo avuto per un po 'senza che nemmeno noi ne fossimo a conoscenza. –

1

Impostare la larghezza di auto (come di seguito) al posto del dispositivo di larghezza sembra risolvere il problema di scorrimento. Ho preso la fonte dalla pagina (http://fiddle.jshell.net/Vk7SR/3/show/light/), confezionato come un app WP8 ​​e provato su un Lumia 920.

@-ms-viewport { 
    width: auto; 
} 
+0

this (http://mattstow.com/responsive-design-in-ie10 -on-windows-phone-8.html) funziona anche! –