0

<app-drawer-layout>の中にあり、ドロワーが隠れている場合は地図の右側に灰色の領域が表示されます。ウェブアプリのgoogle-mapは、アプリドロワーを隠した後、右にグレーの領域を表示します。

enter image description here

enter image description here

私はこの問題について発見したすべての議論は解決策は、マップのresizeイベントをトリガすることであると言うが、それは私のために動作しません。私はちょうど安全な側にいるために遅延を追加しようとしましたが、それでも何もしません。

document.querySelector('app-drawer').addEventListener('app-drawer-transitioned', function(){ 
    window.setTimeout(function(){ 
     console.log(map.clientWidth); 
     google.maps.event.trigger(map, 'resize'); 
    }, 100); 
}); 

コンソール出力は、resizeイベントをトリガする前にマップの幅が実際に変更されたことを確認しますが、グレーの領域は存続します。地図をパンしてズームしても、灰色の領域はまだそこにあります(ただし、パンに応じて幅が広がるか狭くなります)。唯一正しいことは、ブラウザウィンドウ全体のサイズを変更することです。

これはMac版Chromeのbtwです。

+1

に動作しますこれは200%サイズ変更の問題を見て、あなたはその周りにいくつかの空想のCSSは、この動作を引き起こす持っていない限り、マップサイズ変更をトリガすることは、解決する必要があります。 'app-drawer-transitioned'ではなく' opened-changed'イベントで試しましたか? – MrUpsidown

+0

おそらくこちらも見てみましょう:https://github.com/PolymerElements/app-layout/issues/108ドキュメントは完全に最新ではないかもしれません。申し訳ありませんが、アプリの引き出しはまったく分かりませんが、それは役立つかもしれません。 – MrUpsidown

+0

@MrUpsidownそれを見つけました - APIオブジェクトの代わりにDOM要素でイベントをトリガーしようとしました。引き出しが開いたり閉じたりする前に呼び出されるかもしれないと思います。 – BadCash

答えて

0

私はresizeイベントをMaps APIオブジェクトの代わりにDOM要素でトリガーしようとしていました。 Maps APIオブジェクトは<google-map> DOM要素の.mapプロパティで取得できます。

これは私のため

<script> 
    var mapElem = document.querySelector('google-map'); 

    mapElem.addEventListener('api-load', function(e) { 
     var mapObj = mapElem.map; 

     document.querySelector('app-drawer').addEventListener('app-drawer-transitioned', function(){ 
      google.maps.event.trigger(mapObj, 'resize'); 
     }); 
    }); 
</script> 
関連する問題