2012-10-29 16 views
6

Tôi có một bản đồ Google Maps trên trang web của mình, nhưng khi sử dụng nó với một máy tính bảng Microsoft Surface, cử chỉ "pan" bị chặn bởi trình duyệt - nó cố gắng đi đến cửa sổ trình duyệt tiếp theo. Làm cách nào để cho phép trình duyệt có thể bỏ qua sự kiện (kéo sự kiện) để bản đồ hoạt động bình thường? Đi tới maps.google.com, bản đồ hoàn toàn có thể kéo được, vì vậy phải có cách giải quyết mà Google sử dụng.Microsoft Surface: Làm cách nào để cho phép các sự kiện chạm/kéo JavaScript hoạt động mà không bị trình duyệt chặn?

+0

Bạn có thực sự làm việc này hoạt động chính xác không? Tôi vẫn đang đối mặt với cùng một vấn đề và đã thử áp dụng quy tắc CSS của 'touch-action' trên tất cả các phần tử không có may mắn. – Mark

Trả lời

12

Theo hướng dẫn của MS về "Sự kiện con trỏ và cử chỉ" (ở đây: http://msdn.microsoft.com/en-us/library/ie/hh673557%28v=vs.85%29.aspx#Panning_and_zooming), bạn cần phải thêm lớp CSS vào phần tử bạn muốn vô hiệu hóa với quy tắc "-ms-touch-action" được đặt thành " none" như thế này:

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

--EDIT--

hiện nay có là một tài sản hình cảm ứng hành động phi tiền tố, đề xuất trong W3C Pointer sự kiện Candidate recomendation.

Từ MSDN documentation:

Tính đến Internet Explorer 11, phiên bản tiền tố nhà cung cấp Microsoft của sự kiện này (-ms-touch-action) không còn được hỗ trợ và có thể được gỡ bỏ trong một thông cáo trong tương lai. Thay vào đó, hãy sử dụng thao tác chạm tên không có tiền tố, tốt hơn cho việc tuân thủ các tiêu chuẩn và khả năng tương thích trong tương lai.

+0

Giải pháp làm việc tốt nhất mà tôi đã tìm thấy. –

+1

Tôi sẽ thêm rằng bạn có thể thực hiện cả hai, để có khả năng tương thích tối đa, nó không làm tổn thương việc này: '.disablePanZoom { -ms-touch-action: none; hành động chạm: không; } ' – JoeDuncan

Các vấn đề liên quan