在移动设备上拖动地图时传单控件消失(反应)
Leaflet control disapperars while dragging map on mobile(React)
目前正在使用 React-Leaflet 绘制地图。在桌面上一切正常,但在移动设备上(iPhone X)移动地图时图层控制和缩放控制flicker/disappear。
function Osm() {
const [map, setMap] = useState(null)
return (<main>
{map ? <header><img src={logo} />map <img id={'loc'} src={currentLoc} onClick={(e) => goToLoc(map)} /></header> : null}
<MapContainer center={center as any} zoom={13} style={{ height: "100vh" }} zoomAnimation={false} fadeAnimation={false} markerZoomAnimation={false} doubleClickZoom={false}
scrollWheelZoom={true} zoomControl={false} attributionControl={false} whenCreated={(map) => setMap(map as any)}>
<TileLayer
attribution='<a href="https://www.maptiler.com" style="position:absolute;left:10px;bottom:10px;z-index:999;"><img src="https://api.maptiler.com/resources/logo.svg" alt="MapTiler logo"></a>'
url="https://api.maptiler.com/maps/streets/256/{z}/{x}/{y}.png?key="
maxZoom={19}
minZoom={12}
/>
<LayersControl position="topright" collapsed={false}>
<LayersControl.BaseLayer name="E5" checked>
<FeatureGroup key={'e5'}>
<TankstellenNoReactQuery fuel={'e5'} />
</FeatureGroup >
</LayersControl.BaseLayer >
<LayersControl.BaseLayer name="E10" >
<FeatureGroup key={'e10'}>
<TankstellenNoReactQuery fuel={'e10'} />
</FeatureGroup >
</LayersControl.BaseLayer>
<LayersControl.BaseLayer name="Diesel" >
<FeatureGroup key={'diesel'}>
<TankstellenNoReactQuery fuel={'diesel'} />
</FeatureGroup >
</LayersControl.BaseLayer>
</LayersControl>
<ZoomControl position='topleft' />
{/* <ScaleControl metric={true} imperial={false} /> */}
<AttributionControl position='bottomleft' prefix={false} />
<MapHandler />
</MapContainer>
</main >
)
}
对于 <main>
我使用了 display: flex with height: 100vh。但我不认为这是问题的根源。这可能是 webkit 浏览器的问题还是其他问题。据我测试,它只发生在移动设备上。
感谢您的帮助
卡罗
正如Falke Design所说,目前这个包的问题只影响 safari。
目前正在使用 React-Leaflet 绘制地图。在桌面上一切正常,但在移动设备上(iPhone X)移动地图时图层控制和缩放控制flicker/disappear。
function Osm() {
const [map, setMap] = useState(null)
return (<main>
{map ? <header><img src={logo} />map <img id={'loc'} src={currentLoc} onClick={(e) => goToLoc(map)} /></header> : null}
<MapContainer center={center as any} zoom={13} style={{ height: "100vh" }} zoomAnimation={false} fadeAnimation={false} markerZoomAnimation={false} doubleClickZoom={false}
scrollWheelZoom={true} zoomControl={false} attributionControl={false} whenCreated={(map) => setMap(map as any)}>
<TileLayer
attribution='<a href="https://www.maptiler.com" style="position:absolute;left:10px;bottom:10px;z-index:999;"><img src="https://api.maptiler.com/resources/logo.svg" alt="MapTiler logo"></a>'
url="https://api.maptiler.com/maps/streets/256/{z}/{x}/{y}.png?key="
maxZoom={19}
minZoom={12}
/>
<LayersControl position="topright" collapsed={false}>
<LayersControl.BaseLayer name="E5" checked>
<FeatureGroup key={'e5'}>
<TankstellenNoReactQuery fuel={'e5'} />
</FeatureGroup >
</LayersControl.BaseLayer >
<LayersControl.BaseLayer name="E10" >
<FeatureGroup key={'e10'}>
<TankstellenNoReactQuery fuel={'e10'} />
</FeatureGroup >
</LayersControl.BaseLayer>
<LayersControl.BaseLayer name="Diesel" >
<FeatureGroup key={'diesel'}>
<TankstellenNoReactQuery fuel={'diesel'} />
</FeatureGroup >
</LayersControl.BaseLayer>
</LayersControl>
<ZoomControl position='topleft' />
{/* <ScaleControl metric={true} imperial={false} /> */}
<AttributionControl position='bottomleft' prefix={false} />
<MapHandler />
</MapContainer>
</main >
)
}
对于 <main>
我使用了 display: flex with height: 100vh。但我不认为这是问题的根源。这可能是 webkit 浏览器的问题还是其他问题。据我测试,它只发生在移动设备上。
感谢您的帮助
卡罗
正如Falke Design所说,目前这个包的问题只影响 safari。