2009-08-14 6 views
6

Czy ktoś wie, jak uzyskać rozmiar w pikselach lub wartość skali widoku po przyciśnięciu lub dwukrotnym kliknięciu przez użytkownika, aby powiększyć/pomniejszyć stronę w JavaScript?Jak uzyskać skalę widoku po uszczypnięciu/powiększeniu w aplikacji internetowej iPhone'a?

Próbowałem używać window.innerWidth, ale miałem mieszane wyniki. Czasami wydaje się, że dokładnie podaje liczbę pikseli wyświetlanych na ekranie, jednak jeśli powiększam sposób na stronie, a następnie robię duże szczypanie, aby pomniejszyć widok, window.innerWidth będzie wynosił około 600-700, mimo że jest tylko Wyświetlono ~ 200px strony. Strona ma szerokość tylko 400 pikseli i nie pokazuje tła "poszło za daleko", które widzisz po zmniejszeniu rozmiaru strony.

Jeśli wykonuję małe szczypnięcia, aby powiększać i pomniejszać, okno wygląda tak, jakby działało dobrze. Niestety nie mogę polegać na tym, że użytkownik wykonuje tylko niewielkie gesty :)

Próbowałem również użyć właściwości scale na obiekcie zdarzenia gest, ale stwierdziłem, że niewiarygodne, ponieważ nie zawsze wiesz początkowa skala po przeładowaniu strony lub użyj przycisków Wstecz/Dalej, aby przejść do niej, nawet jeśli używasz metatagu do jej określenia.

Ostatecznie próbuję utworzyć aplikację, która jest świadoma, kiedy użytkownik próbuje pomniejszyć maksymalny poziom powiększenia, więc jeśli jest inny sposób, to chcę się o tym dowiedzieć :)

Oto kod używam uzyskać innerWidth:

document.body.addEventListener('gestureend', function (evt) { 
    console.log(window.innerWidth); // inaccurate when doing large pinch gestures 
}, false); 

Dzięki!

Odpowiedz

2

Jeśli tylko próbuje ograniczyć maksymalny poziom powiększenia, można użyć Safari specyficzną tag sterowania rzutnia:

<meta name="viewport" content="maximum-scale=2.0"> 

Patrz Safari mobilny określony viewport meta tag spec szczegóły.

Powiązane problemy