Как карты Google (веб-приложение) масштабируются настолько плавно на iphone/ipad с помощью жеста / пинча?

Если вы использовали веб-приложение Google Maps на своем iphone или ipad, вы знаете, о чем я говорю. Вы не можете видеть мои пальцы на этом снимке экрана, но это уменьшение масштаба (если хотите). Детализированная область была начальной областью просмотра карты, а размытый фрагмент снаружи - дополнительная карта, которая появилась в середине просмотра.

уменьшение жестом

Функция пинч-масштабирования, использующая сенсорный ввод жестами, масштабирует текущую карту, отображаемую в реальном времени, настолько плавно, что это выглядит как волшебство. Мы пытаемся масштабировать изображения и воспроизводить это плавное масштабирование. Кто-нибудь знает, как они это делают?

Мы не знаем, сингл ли это img элемент масштабируется. Или, может быть, все img элементы в их матрице относительной сетки как-то масштабируются одновременно (это кажется маловероятным). Может быть, это много canvas элементы.. или один большой canvas элемент (что мы также сомневаемся после разумного количества испытаний). Пожалуйста, любые предложения, идеи или ответы (если вы из Google) были бы хорошими.

2 ответа

Решение

Вам нужно использовать аппаратно ускоренные CSS3 преобразования. например

  • translate3d() вместо translate ()
  • scale3d () вместо scale ()

Только мобильное сафари в настоящее время поддерживает аппаратное ускорение. Неизвестно, когда Google будет реализовывать это для версий своего браузера для Android.

Другие вопросы по тегам