Opracowałem aplikację, która łączy się z systemem alarmowym instytucji. Jak to działa, gdy pojawia się alert, na wszystkich stronach internetowych instytucji wyświetla przewijaną ramkę zaznaczoną u góry strony, która jest umieszczana tam przez javascript przy użyciu prototypu i scriptaculous.Tworzenie stron internetowych na Androida ... Szerokość dziury (bardziej prawdopodobny tekst wewnętrzny) zmienia się w pikselach na podstawie przybliżenia urządzenia.
Wszystko to działa idealnie w przeglądarkach komputerowych (IE6-8, Chrome, Safari, Firefox, Opera). Działa również dobrze na iPhone'ach. Moim jedynym problemem jest renderowanie na Androida.
Podczas badania problemu początkowo znalazłem właściwość CSS dla urządzeń mobilnych (a mianowicie webkit) - regulację rozmiaru tekstu -webkit, która uniemożliwia urządzeniom przenośnym zmianę rozmiaru tekstu podczas powiększania i zmiany orientacji ekranu. Ustawiłem tę właściwość na "none", jak stwierdzono w wielu artykułach.
Poniżej znajduje się zrzut ekranu z emulatora Androida. Lewy zrzut ekranu pokazuje 1x powiększenie strony. Odstęp między wiadomościami jest taki, jak być powinien. Prawy zrzut ekranu pokazuje powiększoną stronę. Komunikaty pokrywają się, ponieważ rozmiar tekstu jest renderowany inaczej, a szerokość div nie jest wystarczająco szeroka, aby pomieścić tekst.
http://www.themonkeyonline.com/spacing-example.jpg
Oto kod, który umieszcza div na stronie:
var marquee = new Element('div', { 'id' : 'marquee' + marquee_counter })
.setStyle({ 'display' : 'block'
, 'WebkitTextSizeAdjust' : 'none'
, 'fontSize' : '12px'
, 'lineHeight' : '25px'
, 'left' : $(marquee_container).getDimensions().width + 'px' })
.addClassName('marquee_text')
.update(marquee_text);
$(marquee_container).insert(marquee);
Czy coś mi brakuje?
Będę dalej badał problem. Dziękuję wszystkim, którzy czytają to wszystko.
Krótka aktualizacja ... po kolejnych testach wydaje się, że problem nie wynika z powiększenia. Wygląda na to, że problemem jest widok. Przetestowałem naprawdę długi tekst, a nawet przybliżyłem go do końca, nakładało się. Wydaje się, że element div zawierający tekst nie będzie większy niż okno.
Oto przykład kodu w akcji:
http://elliottr.www-dev.seminolestate.edu/alert/
Konfiguruję stronę testową na mojej podsieci dev: http://elliottr.www-dev.seminolestate.edu/alert/ – Riley
To jest dziwne. Działa tak, jak powinien na moim Milestone z systemem Android 2.1 w trybie poziomym i pionowym i niezależnie od poziomu zoomu. – Daniel
Dziękuję Daniel.Wydaje się, że "WebkitTextSizeAdjust" działa tak, jak zostało to opisane w 2.1. Dziwne, przetestowałem go na EVO w innym dniu i miał ten sam problem. Jednak po prostu przetestowałem go na DROID i działał poprawnie. – Riley