2012-10-29 12 views
6

Mam mapę Google Maps na mojej stronie internetowej, ale podczas używania jej z tabletem Microsoft Surface gest "pan" jest przechwytywany przez przeglądarkę - próbuje przejść do następnego okna przeglądarki. Jak zezwolić na ignorowanie panoramy (zdarzenia przeciągania) przez przeglądarkę, aby mapa zachowywała się normalnie? Przechodząc na stronę maps.google.com, mapa jest łatwa do przeciągnięcia, więc musi istnieć obejście, które Google stosuje.Microsoft Surface: Jak mogę zezwolić na obsługę zdarzeń dotykowych i przeciągania JavaScriptu bez przechwytywania przez przeglądarkę?

+0

Czy rzeczywiście działa to poprawnie? Nadal mam ten sam problem i spróbowałem zastosować regułę CSS 'touch-action' na wszystkich elementach bez powodzenia. – Mark

Odpowiedz

12

Zgodnie z instrukcją MS dotyczącą "wskaźników i zdarzeń gestów" (tutaj: http://msdn.microsoft.com/en-us/library/ie/hh673557%28v=vs.85%29.aspx#Panning_and_zooming) należy dodać klasę CSS do elementu, który ma zostać wyłączony, z włączoną opcją "-ms-touch-action" na " none”tak:

.disablePanZoom 
{ 
    -ms-touch-action: none; /* Shunt all pointer events to JavaScript code. */ 
} 

--EDIT--

jest teraz non-prefiksem nieruchomość dotykowy działania, zaproponowany w W3C Pointer Events kandydackiej rekomendacji.

Z MSDN documentation:

jak Internet Explorer 11, Microsoft dostawcy ustalonej wersji tego zdarzenia (-ms-touch-action) nie jest już obsługiwany i może zostać usunięta w przyszłych wydaniach. Zamiast tego użyj nieprzypisanej akcji dotykowej, która jest lepsza dla zgodności ze standardami i przyszłej zgodności.

+0

Najlepsze działające rozwiązanie, które znalazłem. –

+1

Dodałbym, że możesz zrobić oba, dla maksymalnej kompatybilności, nie boli to zrobić: '.disablePanZoom { -ms-touch-action: none; dotknij akcji: brak; } ' – JoeDuncan

Powiązane problemy