Leaflet: L.Browser.touch está sendo configurado incorretamente na área de trabalho (Chrome)

Criado em 18 jan. 2017  ·  3Comentários  ·  Fonte: Leaflet/Leaflet

Parece que as atualizações recentes do Chrome (no Mac, pelo menos) mudaram sua implementação de window.PointerEvent . Isso faz com que a versão atual do Leaflet (1.0.2) faça um diagnóstico errado do navegador como um dispositivo de toque e adicione a classe leaflet-touch .

Esta linha parece ser a culpada:

pointer = window.PointerEvent || msPointer

...pode ser encontrado aqui: https://github.com/Leaflet/Leaflet/blob/v1.0.2/src/core/Browser.js#L33

O problema é que window.PointerEvent é uma função, que sempre retornará 'truthy'.

Como reproduzir

  • Navegador: Mac OSX El Capitan (10.11.6), Chrome versão 55.0.2883.95 (64 bits)
  • Vá para www.leafletjs.com e veja o exemplo de demonstração... os botões Zoom In/Out estão aumentados, devido à classe leaflet-touch ser aplicada ao container do mapa do folheto.

Comentários muito úteis

Então, qual é o sentido de detectar o toque se não for detectar o toque com precisão? Toda essa lógica não deveria ser removida do folheto então?

Todos 3 comentários

Eu posso reproduzir isso também...

Duplicata de https://github.com/Leaflet/Leaflet/issues/3944. Não há como saber se o navegador está rodando em um computador com touchscreen ou não, só é possível saber se o navegador suporta eventos touch/pointer ou não. Veja também http://www.stucox.com/blog/you-cant-detect-a-touchscreen/

Então, qual é o sentido de detectar o toque se não for detectar o toque com precisão? Toda essa lógica não deveria ser removida do folheto então?

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

zdila picture zdila  ·  3Comentários

frankjar picture frankjar  ·  4Comentários

arminghm picture arminghm  ·  3Comentários

timwis picture timwis  ·  3Comentários

remilev picture remilev  ·  4Comentários