Leaflet: デスクトップ(Chrome)でL.Browser.touchが正しく設定されていません

作成日 2017年01月18日  ·  3コメント  ·  ソース: Leaflet/Leaflet

Chromeの最近のアップデート(少なくともMacでは)によってwindow.PointerEventの実装が変更されたようです。 これにより、現在のバージョンのLeaflet(1.0.2)は、ブラウザーをタッチデバイスと誤診し、 leaflet-touchクラスを追加します。

この行が原因のようです:

pointer = window.PointerEvent || msPointer

...ここで見つけることができます: https ://github.com/Leaflet/Leaflet/blob/v1.0.2/src/core/Browser.js#L33

問題は、 window.PointerEventが関数であり、常に「truthy」を返すことです。

再現する方法

  • ブラウザ:Mac OSX El Capitan(10.11.6)、Chromeバージョン55.0.2883.95(64ビット)
  • www.leafletjs.comにアクセスして、デモの例を見てください...リーフレットマップコンテナにleaflet-touchクラスが適用されているため、ズームイン/ズームアウトボタンが拡大されています。

最も参考になるコメント

では、タッチを正確に検出できない場合、タッチを検出するポイントは何ですか? それでは、そのロジック全体をリーフレットから削除するべきではありませんか?

全てのコメント3件

これも再現できます...

https://github.com/Leaflet/Leaflet/issues/3944の複製。 ブラウザがタッチスクリーンを備えたコンピュータで実行されているかどうかを知る方法はありません。ブラウザがタッチ/ポインタイベントをサポートしているかどうかを知ることしかできません。 http://www.stucox.com/blog/you-cant-detect-a-touchscreen/も参照してください。

では、タッチを正確に検出できない場合、タッチを検出するポイントは何ですか? それでは、そのロジック全体をリーフレットから削除するべきではありませんか?

このページは役に立ちましたか?
0 / 5 - 0 評価